Android 기술 Q&A 
Q&A 게시판에 질문을 남기신 글에 대한 답변/덧글/쪽글에 대한 Push 메일 서비스를 받고자 하시는 분들은
☞ Push 메일 서비스 공지를 필독하시기 바랍니다.
mediaplayer 질문입니다.
작성자
작성일 2008-12-19 (금) 15:54
ㆍ추천: 0  ㆍ조회: 13279      
IP: 59.xxx.76
ApiDemo에 있는 mediaplayer는 재생이 잘 되는 것을 확인했구요.
그것을 참조해서 새로 프로젝트 하나 만들어서 플레이어를 만들고 있는데요.
VideoView 위젯을 사용해서 플레이 되는 것은 확인했는데 MediaPlayer 클래스를 가지고 해보니 도무지 플레이가 안됩니다. ㅜㅜ
뭐가 틀렸는지 한번 봐주세요... 부탁드립니다...
UI는 화면 절반정도를 surface로 잡아놓고 나머지 부분에 버튼이 3개정도 있습니다.
 
그리고 추가 질문이 있는데요. VideoView widget과 MediaPlayer 클래스가 따로 있는 이유는 무엇입니까?
결국 미디어 플레이어기능인데 둘이 따로 둔 차이가 무엇인지 모르겠습니다.
그럼 부탁드립니다.
-----------------------------------------
package test.hellohongs;
import java.io.IOException;

import android.app.Activity;
import android.content.Intent;
import android.graphics.PixelFormat;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnBufferingUpdateListener;
import android.media.MediaPlayer.OnCompletionListener;
import android.media.MediaPlayer.OnErrorListener;
import android.media.MediaPlayer.OnPreparedListener;
import android.os.Bundle;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.SurfaceHolder.Callback;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class VideoPlayer extends Activity implements OnErrorListener,
  OnBufferingUpdateListener, OnCompletionListener, MediaPlayer.OnPreparedListener, SurfaceHolder.Callback {
   
    private static final String TAG = "VideoPlayer";   
   
    private MediaPlayer mp;   
    private SurfaceView mPreview;   
    private EditText mPath;   
    private SurfaceHolder holder;   
    private Button mPlay;   
    private Button mPause;   
    private Button mReset;   
    private Button mStop;   
    private String current;   
  
    private int mVideoWidth;
    private int mVideoHeight;
    private String path;

    /**  
     * Called when the activity is first created.  
     */  

    public void onCreate(Bundle icicle) {   
        super.onCreate(icicle);   
       
        Bundle extras = new Bundle();
       
     // 값확인
        extras = getIntent().getExtras();
        path = extras.getString("url_path");    //이전 activity에서 url을 입력받아 그것을 플레이 하려함.
       
        setContentView(R.layout.viewmain); 
        
       
        mPreview = (SurfaceView) findViewById(R.id.surface_view);   
      
        holder = mPreview.getHolder();
        holder.addCallback(this);
        holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

        
    }   
  
    private OnClickListener mVideoPlayerListenr = new OnClickListener(){
  public void onClick(View v) {
   // TODO Auto-generated method stub
   
  }};
   
    private void playVideo() {
        try {
         
            if (path == "") {
                // Tell the user to provide a media file URL.
                Toast
                        .makeText(
                                VideoPlayer.this,
                                "Please edit MediaPlayerDemo_Video Activity, "
                                        + "and set the path variable to your media file path."
                                        + " Your media file must be stored on sdcard.",
                                Toast.LENGTH_LONG).show();
            }
            // Create a new media player and set the listeners
          
            mp = new MediaPlayer();
            mp.setDataSource(path);
            mp.setDisplay(holder);
            mp.prepare();
            mp.setOnBufferingUpdateListener(this);
            mp.setOnCompletionListener(this);
            mp.setOnPreparedListener(this);
            mp.setAudioStreamType(AudioManager.STREAM_MUSIC);

            
        } catch (Exception e) {
            Log.e(TAG, "error: " + e.getMessage(), e);
        }
    }
 public boolean onError(MediaPlayer mp, int what, int extra) {
  // TODO Auto-generated method stub
  return false;
 }
 public void onBufferingUpdate(MediaPlayer mp, int percent) {
  // TODO Auto-generated method stub
 }
 public void onCompletion(MediaPlayer mp) {
  // TODO Auto-generated method stub
 }
 public void onPrepared(MediaPlayer mp) {
  // TODO Auto-generated method stub
  Log.d(TAG, "onPrepared called");
        mVideoWidth = mp.getVideoWidth();
        mVideoHeight = mp.getVideoHeight();
        if (mVideoWidth != 0 && mVideoHeight != 0) {
            holder.setFixedSize(mVideoWidth, mVideoHeight);
            mp.start();
        }
 }
 public void surfaceChanged(SurfaceHolder holder, int format, int width,
   int height) {
  // TODO Auto-generated method stub
 }
 
 public void surfaceCreated(SurfaceHolder holder) {
  // TODO Auto-generated method stub
        // TODO Auto-generated method stub
        Log.d(TAG, "surfaceCreated called");
        playVideo();
   }
 
 public void surfaceDestroyed(SurfaceHolder holder) {
  // TODO Auto-generated method stub
 }
}
----------------------------
색칠된 부분에 대해서도 잘 모르겠는데요. android 웹페이지에서 android media api 참고 설명을 보면
MediaPlayer mp = new MediaPlayer();
    mp.setDataSource(PATH_TO_FILE);
    mp.prepare();
    mp.start();
이렇게가 설명이 다인데. surface를 어떻게 꾸며줘야 되는지에 대한 설명은 찾아보기 힘드네요.
부탁드립니다.
덧글 쓰기 0
3500
※ 회원등급 레벨 0 이상 읽기가 가능한 게시판입니다.
    N     분류     제목    글쓴이 작성일 조회
4653 안드로이드 배워보고 싶습니다. 2008-12-16 7999
4652 안드로이드 소스 트리 2008-12-17 8500
4651 s3c6400 android 포팅 절차 2008-12-17 9232
4650 Re..안드로이드 드라이버 이해를 위한 공부는 어떤 것을 먼저 .. 2008-12-17 8228
4649 proxy 설정은 어디서 어떻게 하나요? 2008-12-18 10589
4648 Emulator 정보는 어디에 저장되어 있나요? 2008-12-18 8153
4647 application 실행 오류 문제 2008-12-18 8257
4646 App 실행이 안되요... 2008-12-18 8944
4645 소스상에서 widget 의 위치 ... 2008-12-18 8001
4644 mediaplayer 질문입니다. 2008-12-19 13279
4643 LCD UI 회전 2008-12-20 8517
4642 view클래스에서의 activity실행방법에 대해 질문입니다... 2008-12-22 8169
4641 Activity Manager 실행 오류 2008-12-22 8142
4640 왕~초보 질문이요.. 2008-12-22 8109
4639 pop3에 접촉하기. 2008-12-22 8240
4638 Eclipse Ganymade 에서 발생하는 Emulator Error, 어떻게 해결.. 2008-12-22 8475
4637 안드로이드에서 pop3접속할대 javax사용 가능 하나요..ㅇ.ㅇ.. 2008-12-23 9615
4636 Fedora에서 android 컴파일 2008-12-23 11007
4635 타겟 커널 컴파일 문제 좀 도와주세요 2008-12-23 8562
4634 제품생산에 대한 라이센스? 2008-12-24 9138
4633 리소스 layout에 xml파일 추가 하는 것 관련 질문입니다... 2008-12-24 8601
4632 터치나 키패드 없이 터미널 창으로 Application 실행 방법.. 2008-12-24 8313
4631 엑티비티를 더 멋이게 보이는 방법? 2008-12-24 8255
4630 안드로이드 마켓의 국내 개발자 등록 문제에,,,.. 2008-12-26 8448
4629 dev phone unlock 2008-12-26 8700
4628 안드로이드 포팅 관련 초보 질문드립니다 2008-12-26 8335
4627 Re..Native Application에 대한 안드로이드 포팅 2008-12-27 9551
4626 저도 포팅에 관련되서 질문 좀 드릴께요 ㅠ 2008-12-27 8526
4625 스트리밍 관련 문의 2008-12-29 8287
4624 Re..뚫었습니다!! 2008-12-29 9139
4623 [질문]안드로이드 상에서 화면 크기 변경 2008-12-29 9848
4622 [질문]또 올립니다.^^;; 하드웨어 테스트하는 방법.. 2008-12-29 7716
4621 Framework 관련 질문 2008-12-29 8513
4620 안드로이드 마켓 2008-12-29 8195
4619 Re..[재문의] 스트리밍 관련 2008-12-29 9398
4618 전화오는걸 이벤트로 체크할 수 있나요? 2008-12-31 8461
4617 Re.. PhoneStateListener 예제. 2008-12-31 21244
4616 dev phone을 어떻게 구입할수 있나요? 2008-12-31 8106
4615 새해인사 드립니다. ^^ 그리고 질문도. ㅋㅋ 2009-01-01 7611
4614 Re..실시간으로 질문하네요^^ 2009-01-02 8611
4613 background와 service에 대해서.. 2009-01-02 8154
4612 안드로이드 기본 어플관련.. 2009-01-02 8243
4611 G1 폰 언락 질문 입니다. adb shell -> device not found... 2009-01-02 11238
4610 adnroid 1.0 porting 질문입니다. 2009-01-03 8582
4609 Android 포팅 겸 임베디드 실습 보드로 쓸만한 것?.. 2009-01-04 9614
4608 음 질문은 아니고 제안.. 2009-01-05 8194
4607 이제 막 입문자가 질문 드립니다. 2009-01-05 7907
4606 안드로이드 어플 선택 실행방법? 2009-01-05 8599
4605 새 Activity 생성에 관한 질문입니다... 2009-01-05 8592
4604 안드로이드에서 DB질문이요... 2009-01-05 8244
12345678910,,,101