저는 특정 동영상 파일을 재생하는 것이 주요 목표입니다.Android VideoView 오류 1,0
가끔 비디오가 올바르게 재생됩니다. 나는 이런 식으로 시작하는 전화 준비된 수신기를 사용하고
03-21 14:52:36.181: I/AwesomePlayer(119):
setDataSource_l('/data/data/my.package.name/files/MyMovie.mp4')
03-21 14:52:36.196: W/VideoView(26612): Unable to open content: /data/data/my.package.name/files/MyMovie.mp4
03-21 14:52:36.196: W/VideoView(26612): java.lang.IllegalArgumentException: The surface has been released
03-21 14:52:36.196: W/VideoView(26612): at android.media.MediaPlayer._setVideoSurface(Native Method)
03-21 14:52:36.196: W/VideoView(26612): at android.media.MediaPlayer.setDisplay(MediaPlayer.java:633)
03-21 14:52:36.196: W/VideoView(26612): at android.widget.VideoView.openVideo(VideoView.java:222)
03-21 14:52:36.196: W/VideoView(26612): at android.widget.VideoView.access$2000(VideoView.java:49)
03-21 14:52:36.196: W/VideoView(26612): at android.widget.VideoView$6.surfaceCreated(VideoView.java:465)
03-21 14:52:36.196: W/VideoView(26612): at android.view.SurfaceView.updateWindow(SurfaceView.java:533)
03-21 14:52:36.196: W/VideoView(26612): at android.view.SurfaceView.access$000(SurfaceView.java:81)
03-21 14:52:36.196: W/VideoView(26612): at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:169)
03-21 14:52:36.196: W/VideoView(26612): at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:590)
03-21 14:52:36.196: W/VideoView(26612): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1617)
03-21 14:52:36.196: W/VideoView(26612): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442)
03-21 14:52:36.196: W/VideoView(26612): at android.os.Handler.dispatchMessage(Handler.java:99)
03-21 14:52:36.196: W/VideoView(26612): at android.os.Looper.loop(Looper.java:137)
03-21 14:52:36.196: W/VideoView(26612): at android.app.ActivityThread.main(ActivityThread.java:4424)
03-21 14:52:36.196: W/VideoView(26612): at java.lang.reflect.Method.invokeNative(Native Method)
03-21 14:52:36.196: W/VideoView(26612): at java.lang.reflect.Method.invoke(Method.java:511)
03-21 14:52:36.196: W/VideoView(26612): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
03-21 14:52:36.196: W/VideoView(26612): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
03-21 14:52:36.196: W/VideoView(26612): at dalvik.system.NativeStart.main(Native Method)
03-21 14:52:36.196: D/VideoView(26612): Error: 1,0
: 그러나 다른 시간은 나에게이 오류 제공
mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer arg0) {
mVideoView.start();
}
});
을 그리고 나는이와 데이터 소스를 설정합니다
file = new File(this.getFilesDir() + File.separator + VIDEO_FILE_NAME);
mVideoView.setVideoPath(file.getAbsolutePath());
나는 그 파일이 존재하고 적절한 형식임을 확실히 알고있다.
내 응용 프로그램에는 알람 트리거에서 실행할 수있는 기능이 있습니다. 그것은 장치 화면이 꺼져있는 동안 방아쇠가 발생하고 내 앱을 시작하는 경우에만 문제가되는 것처럼 보입니다 (내 앱은 잠자기 모드로 화면을 켭니다). 수동으로 앱을 시작하거나 화면에서 트리거가 발생하면 동영상이 정상적으로 재생됩니다. 이 오류는 Galaxy Nexus에서만 발생합니다. 나는 넥서스 S (정확히는 다른 사람들의 긴 목록)에서 똑같은 코드를 실행할 수 있으며, 매번 잘 시작된다.
누구나 Galaxy Nexus 또는 ICS와 관련하여이 문제가 발생할 수있는 특정 사항을 알고 있습니까? 그리고 내가 고칠 수있는 것에 대한 제안이 있습니까?
안 그래? 내가해야하는 유일한 호출은 .prepare()와 .start()입니다. 그리고 청취자가 시작한 것은 설정 한 것과 같습니다. 그래서 prepare()가 내 활동 범위에서 호출되는 유일한 객체입니다. – FoamyGuy
우수, 고맙습니다 more – braden