1. 비디오 재생 주요 순서
1.1 VideoView 클래스 객체를 참조
- VideoView videoView = (VideoView) findViewById(R.id.VideoView);
1.1 비디오 파일 위치 설정
- 예제에서 확인
1.2 비디오 재생 시작
- videoView.start();
2. 비디오 재생중지 주요 순서
2.1 비디오 일시중지
- videoView.pause();
2.2 비디오 중지
- videoView.stopPlayback();
3. 예제
android version = jelly bean
import android.app.Activity; import android.media.MediaPlayer; import android.media.MediaPlayer.OnCompletionListener; import android.media.MediaPlayer.OnPreparedListener; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.MediaController; import android.widget.Toast; import android.widget.VideoView; public class MyVideoPlayerActivity extends Activity { public final static String VIDEO_URL = "http://sites.google.com/site/ubiaccessmobile/sample_video.mp4"; public final static int URL = 1; public final static int SDCARD = 2; VideoView videoView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 영상을 출력하기 위한 비디오뷰 // SurfaceView 를 상속받아 만든클래스이다 // 웬만하면 VideoView는 그때 그때 생성해서 추가 후 사용 // 화면 전환시 여러 UI가 있을때 화면에 제일 먼저 그려져서 보기에 좋지 않을 때가 있다. // 예제에서 xml 에 추가해서 해보았다. videoView = (VideoView) findViewById(R.id.VideoView); Button button1 = (Button) findViewById(R.id.button1); Button button2 = (Button) findViewById(R.id.button2); videoView = (VideoView) findViewById(R.id.VideoView); int type = URL; switch (type) { case URL: // 동영상의 경로가 웹에 있다면 아래와 같이 설정 videoView.setVideoURI(Uri.parse(VIDEO_URL)); break; case SDCARD: // 동영상의 경로가 SD Card 에 있다면 아래와 같이 설정 String path = Environment.getExternalStorageDirectory() + "/TestVidio6.mp4"; videoView.setVideoPath(path); break; } // 미디어컨트롤러 추가하는부분 MediaController controller = new MediaController(this); videoView.setMediaController(controller); // 준비하는 과정을 미리함 videoView.requestFocus(); // 동영상이 재생준비가 완료되엇을떄를 알수있는 리스너 (실제 웹에서 영상을 다운받아 출력할때 많이 사용됨) videoView.setOnPreparedListener(new OnPreparedListener() { // 동영상 재생준비가 완료된후 호출되는 메서드 @Override public void onPrepared(MediaPlayer mp) { // TODO Auto-generated method stub Toast.makeText(getApplicationContext(), "동영상이 준비되었습니다.\n'재생' 버튼을 누르세요.", Toast.LENGTH_LONG) .show(); } }); // 동영상 재생이 완료된걸 알수있는 리스너 videoView.setOnCompletionListener(new OnCompletionListener() { // 동영상 재생이 완료된후 호출되는 메서드 public void onCompletion(MediaPlayer player) { Toast.makeText(getApplicationContext(), "동영상 재생이 완료되었습니다.", Toast.LENGTH_LONG).show(); } }); button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub playVideo(); } }); button2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub stopVideo(); } }); } private void playVideo() { // 비디오를 처음부터 재생할땐 0 videoView.seekTo(0); // 비디오 재생 시작 videoView.start(); } private void stopVideo() { // 비디오 재생 잠시멈춤 videoView.pause(); // 비디오 재생 완전 멈춤 videoView.stopPlayback(); // 예제에선 videoView=null를 해서 단말기에 테스트시 한번밖에 동영상을 재생못합니다. //videoView = null; } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.my_video_player, menu); return true; } }
그대로했는데 재생할 수 없는 동영상입니다 라고 뜨네요.. 해결책이 없을까요?
답글삭제작성자가 댓글을 삭제했습니다.
답글삭제안녕하세요. 혹시 mp4형식 말고 url이나 IP address를 써서 파이카메라로 실행할수있나요
답글삭제