-
[ Android ] 동영상 파일 재생하기Android/멀티미디어 2020. 3. 24. 17:08
이 글은 부스트코스 강의를 공부하며 요약한 글입니다.
CatServant
실행 결과
Code
- AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WAKE_LOCK"/>
android.permission.WAKE_LOCK
CPU가 켜진 상태를 유지 한다. wake lock을 사용하면 Application에서 호스트 기기의 전원 상태를 제어할 수 있습니다. wake lock을 생성하고 유지하는 것은 호스트 기기의 배터리 수명에 심각한 영향을 미칠 수 있습니다. 따라서, wake lock은 꼭 필요한 경우에만 사용하고 가능한 한 짧은 시간 동안 유지해야 합니다.
- MainActivity.java
public class MainActivity extends AppCompatActivity { VideoView videoView; public final static String url = "https://sites.google.com/site/ubiaccessmobile/sample_video.mp4"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); videoView = (VideoView) findViewById(R.id.videoView); MediaController controller = new MediaController(this); videoView.setMediaController(controller); videoView.setVideoURI(Uri.parse(url)); videoView.requestFocus(); videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { Toast.makeText(getApplicationContext(), "동영상 준비됨.", Toast.LENGTH_LONG).show(); } }); Button button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { videoView.seekTo(0); videoView.start(); } }); // Error 메세지 표시 videoView.setOnErrorListener(new MediaPlayer.OnErrorListener() { @Override public boolean onError(MediaPlayer mp, int what, int extra) { String message; switch (what) { case MediaPlayer.MEDIA_ERROR_UNKNOWN: message = "MEDIA_ERROR_UNKNOWN"; break; case MediaPlayer.MEDIA_ERROR_SERVER_DIED: message = "MEDIA_ERROR_SERVER_DIED"; break; default: message = "No what"; } switch (extra) { case MediaPlayer.MEDIA_ERROR_IO: message += ", MEDIA_ERROR_IO"; break; case MediaPlayer.MEDIA_ERROR_MALFORMED: message += ", MEDIA_ERROR_MALFORMED"; break; case MediaPlayer.MEDIA_ERROR_UNSUPPORTED: message += ", MEDIA_ERROR_UNSUPPORTED"; break; case MediaPlayer.MEDIA_ERROR_TIMED_OUT: message += ", MEDIA_ERROR_TIMED_OUT"; break; default: message += ", No extra"; } Log.e("error Tag : ", message); return true; } }); } }
계속 아래와 같은 Error를 만나서 이유를 찾아봤으나 MEDIA_ERROR_UNKNOWN 에 대한 정보를 얻을 수 없었습니다.
그런데 URL을 http 에서 https 로 고쳤을 뿐인데 해결되었다. 주소창을 통해서 접근할 때는 http로 접근이 가능해서 URL의 문제는 아니라고 생각했는데 고쳐져서 이유는 모르겠다.
출처
'Android > 멀티미디어' 카테고리의 다른 글
[ Android ] 임시 파일 생성해서 외부 앱으로 찍은 사진 받기 (0) 2020.09.16 [ Android ] 음성 녹음하기 (1) 2020.03.26 [ Android ] 음악 재생하기 (0) 2020.03.25 [ Android ] 사진 미리보기 - Camera 이용 (0) 2020.03.17 [ Android ] 사진 찍기 (0) 2020.03.16