마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

VideoView사용법 질문!!

0 추천

안녕하세요, 안드로이드 초보 개발자입니다.

웹에서 동영상을 읽어와 재생시키는 간단한 테스트앱을 만들고 있는데요.

코드는 아래와 같이 단순합니다. 

mVv = (VideoView)findViewById(R.id.videoView1);

		mVv.setVideoURI(Uri.parse("http://sites.google.com/site/ubiaccessmobile/sample_video.mp4"));
		
		mVv.requestFocus();
		mVv.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
			@Override
			public void onPrepared(MediaPlayer mp) {
				mVv.seekTo(0);
				mVv.start();	
			}
		});
		
		mVv.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
			@Override
			public void onCompletion(MediaPlayer mp) {
				mVv.start();
			}
		});

 

위의 코드상에 url 가지고 앱을 실행하면 이상없이 동영상이 재생됩니다.

onprepared도 호출되고, oncomplete도 호출됩니다.

근데 회사내부에서 제공받은 동영상 url을 사용하면 onprepared가 호출되고 끝이네요.

아무리 오래기다려도 동영상이 재생되지 않습니다. 

혹시 동영상 url이 문제인가하여 웹브라우저로 불러보니 이상없이 동영상이 재생되네요...

문제가 되는 동영상을 url로 하여 위의 코드를 실행시키면 아래와 같은 로그가 뜨고 아무리 기다려도 더 이상의 진행은 없습니다.

(로그는 댓글로 달겠습니다. 문자길이제한에 걸려서요 ㅠ )
 
혹시 이게 왜 이런건지 아시는분!!

조언 부탁드리겠습니다!!

 

블랙이요블랙 (12,860 포인트) 님이 2013년 12월 16일 질문
12-16 16:40:55.654: D/MediaPlayer(4085): setDataSource IOException happend :
12-16 16:40:55.654: D/MediaPlayer(4085): java.io.FileNotFoundException: No content provider: http://ipnumber:portnumber/mobilesite/images/pre_call_3000.mp4
(이부분은 실제 ip주소와 포트넘버가 들어갑니다.)
12-16 16:40:55.654: D/MediaPlayer(4085):  at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:713)
12-16 16:40:55.654: D/MediaPlayer(4085):  at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:617)
12-16 16:40:55.654: D/MediaPlayer(4085):  at android.media.MediaPlayer.setDataSource(MediaPlayer.java:952)
12-16 16:40:55.654: D/MediaPlayer(4085):  at android.widget.VideoView.openVideo(VideoView.java:236)
12-16 16:40:55.654: D/MediaPlayer(4085):  at android.widget.VideoView.access$2000(VideoView.java:52)
12-16 16:40:55.654: D/MediaPlayer(4085):  at android.widget.VideoView$6.surfaceCreated(VideoView.java:490)
12-16 16:40:55.654: D/MediaPlayer(4085):  at android.view.SurfaceView.updateWindow(SurfaceView.java:586)
12-16 16:40:55.654: D/MediaPlayer(4085):  at android.view.SurfaceView.access$000(SurfaceView.java:91)
12-16 16:40:55.654: D/MediaPlayer(4085):  at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:179)
12-16 16:40:55.654: D/MediaPlayer(4085):  at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:711)
12-16 16:40:55.654: D/MediaPlayer(4085):  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2097)
12-16 16:40:55.654: D/MediaPlayer(4085):  at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1179)
12-16 16:40:55.654: D/MediaPlayer(4085):  at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4864)
12-16 16:40:55.654: D/MediaPlayer(4085):  at android.view.Choreographer$CallbackRecord.run(Choreographer.java:791)
12-16 16:40:55.654: D/MediaPlayer(4085):  at android.view.Choreographer.doCallbacks(Choreographer.java:591)
12-16 16:40:55.654: D/MediaPlayer(4085):  at android.view.Choreographer.doFrame(Choreographer.java:561)
12-16 16:40:55.654: D/MediaPlayer(4085):  at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:777)
12-16 16:40:55.654: D/MediaPlayer(4085):  at android.os.Handler.handleCallback(Handler.java:725)
12-16 16:40:55.654: D/MediaPlayer(4085):  at android.os.Handler.dispatchMessage(Handler.java:92)
12-16 16:40:55.654: D/MediaPlayer(4085):  at android.os.Looper.loop(Looper.java:137)
12-16 16:40:55.654: D/MediaPlayer(4085):  at android.app.ActivityThread.main(ActivityThread.java:5297)
12-16 16:40:55.654: D/MediaPlayer(4085):  at java.lang.reflect.Method.invokeNative(Native Method)
12-16 16:40:55.654: D/MediaPlayer(4085):  at java.lang.reflect.Method.invoke(Method.java:511)
12-16 16:40:55.654: D/MediaPlayer(4085):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
12-16 16:40:55.654: D/MediaPlayer(4085):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
12-16 16:40:55.654: D/MediaPlayer(4085):  at dalvik.system.NativeStart.main(Native Method)
12-16 16:40:55.654: D/MediaPlayer(4085): Couldn't open file on client side, trying server side
12-16 16:40:55.654: V/MediaPlayer(4085): setVideoSurfaceTexture
12-16 16:40:55.654: V/MediaPlayer-JNI(4085): setAudioStreamType: 3
12-16 16:40:55.654: V/MediaPlayer(4085): MediaPlayer::setAudioStreamType
12-16 16:40:55.654: V/MediaPlayer(4085): setVideoSurfaceTexture
12-16 16:40:55.654: V/MediaPlayer(4085): prepareAsync
12-16 16:40:57.396: V/MediaPlayer(4085): message received msg=1, ext1=0, ext2=0
12-16 16:40:57.406: V/MediaPlayer(4085): prepared
12-16 16:40:57.406: V/MediaPlayer(4085): callback application
12-16 16:40:57.406: V/MediaPlayer(4085): back from callback
12-16 16:40:57.416: D/MediaPlayer(4085): getMetadata
12-16 16:40:57.416: V/MediaPlayer(4085): message received msg=200, ext1=702, ext2=0
12-16 16:40:57.416: W/MediaPlayer(4085): info/warning (702, 0)
12-16 16:40:57.416: V/MediaPlayer(4085): callback application
12-16 16:40:57.416: V/MediaPlayer-JNI(4085): seekTo: 0(msec)
12-16 16:40:57.416: V/MediaPlayer(4085): back from callback
12-16 16:40:57.426: V/MediaPlayer(4085): seekTo 0
12-16 16:40:57.426: V/MediaPlayer-JNI(4085): start
12-16 16:40:57.426: V/MediaPlayer(4085): start
12-16 16:40:57.446: V/MediaPlayer(4085): message received msg=4, ext1=0, ext2=0
12-16 16:40:57.446: V/MediaPlayer(4085): Received seek complete
12-16 16:40:57.446: V/MediaPlayer(4085): All seeks complete - return to regularly scheduled program
12-16 16:40:57.446: V/MediaPlayer(4085): callback application
12-16 16:40:57.446: V/MediaPlayer(4085): back from callback
12-16 16:40:57.446: V/MediaPlayer(4085): getVideoWidth
12-16 16:40:57.446: V/MediaPlayer-JNI(4085): getVideoWidth: 0
12-16 16:40:57.446: V/MediaPlayer(4085): getVideoHeight
12-16 16:40:57.446: V/MediaPlayer-JNI(4085): getVideoHeight: 0
12-16 16:40:57.456: V/MediaPlayer-JNI(4085): start
12-16 16:40:57.456: V/MediaPlayer(4085): start
12-16 16:40:57.456: I/MediaPlayer(4085): Info (702,0)
웹브라우저라는게 폰의 웹브라우저인가요?
가끔보면 스트리밍되는 mp4라고 따로 있더라구요.
http://susemi99.tistory.com/794

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...