Сбои Dreamservice VideoView
Я разрабатываю приложение, которое воспроизводит видео в качестве заставки. На самом деле мое приложение связывается со службой, поэтому, когда экран переходит в режим ожидания, он воспроизводит заставку.
Моя проблема в том, что когда я пытаюсь создать небольшой плейлист с 3 видео на нем, по какой-то причине он не работает, экран становится черным и блокирует телефон (я предполагаю, что служба аварийно завершилась, и журнал говорит об этом)
Любая идея сделать циклический список видео с VideoView в DreamService? или, может быть, вы могли бы помочь мне попытаться понять ошибку.
11-07 09:26:32.155 1477 1519 D ActivityTrigger: ActivityTrigger activityStopTrigger
11-07 09:26:32.156 2045 3481 I RenderThread: RenderThread paused, waiting for signal
11-07 09:26:32.156 2045 2045 W IInputConnectionWrapper: getSelectedText on inactive InputConnection
11-07 09:26:32.157 1477 1548 W WindowAnimator: Failed to dispatch window animation state change.
11-07 09:26:32.157 1477 1548 W WindowAnimator: android.os.DeadObjectException
11-07 09:26:32.157 1477 1548 W WindowAnimator: at android.os.BinderProxy.transactNative(Native Method)
11-07 09:26:32.157 1477 1548 W WindowAnimator: at android.os.BinderProxy.transact(Binder.java:506)
11-07 09:26:32.157 1477 1548 W WindowAnimator: at android.view.IWindow$Stub$Proxy.onAnimationStopped(IWindow.java:534)
11-07 09:26:32.157 1477 1548 W WindowAnimator: at com.android.server.wm.WindowAnimator.updateWindowsLocked(WindowAnimator.java:289)
11-07 09:26:32.157 1477 1548 W WindowAnimator: at com.android.server.wm.WindowAnimator.animateLocked(WindowAnimator.java:681)
11-07 09:26:32.157 1477 1548 W WindowAnimator: at com.android.server.wm.WindowAnimator.access$000(WindowAnimator.java:53)
11-07 09:26:32.157 1477 1548 W WindowAnimator: at com.android.server.wm.WindowAnimator$1.doFrame(WindowAnimator.java:123)
11-07 09:26:32.157 1477 1548 W WindowAnimator: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
11-07 09:26:32.157 1477 1548 W WindowAnimator: at android.view.Choreographer.doCallbacks(Choreographer.java:672)
11-07 09:26:32.157 1477 1548 W WindowAnimator: at android.view.Choreographer.doFrame(Choreographer.java:605)
11-07 09:26:32.157 1477 1548 W WindowAnimator: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:846)
11-07 09:26:32.157 1477 1548 W WindowAnimator: at android.os.Handler.handleCallback(Handler.java:742)
11-07 09:26:32.157 1477 1548 W WindowAnimator: at android.os.Handler.dispatchMessage(Handler.java:95)
11-07 09:26:32.157 1477 1548 W WindowAnimator: at android.os.Looper.loop(Looper.java:154)
11-07 09:26:32.157 1477 1548 W WindowAnimator: at android.os.HandlerThread.run(HandlerThread.java:61)
11-07 09:26:32.157 1477 1548 W WindowAnimator: at com.android.server.ServiceThread.run(ServiceThread.java:46)
Это функция, которая воспроизводит видео:
private void reproducirVideo() {
// Se crean los controles multimedia.
reprod3.setVisibility(View.VISIBLE);
reprod3.setVideoPath(videoRuta);
reprod3.requestFocus();
reprod3.start();
if (reprod3.canSeekForward())
reprod3.seekTo(reprod3.getDuration() / 2);
//Loop del video:
reprod3.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
nextVideo(mediaPlayer);
}
});
}
И это меняет это:
public void nextVideo(MediaPlayer mp) {
mp.reset();
//reprod3.stopPlayback();
index++;
if (index > 2) {
index = 0;
}
switch (index) {
case 1:
videoRuta = ruta2;
break;
case 2:
videoRuta = ruta3;
break;
case 0:
videoRuta = ruta1;
break;
}
reprod3.setVideoPath(videoRuta);
reprod3.start();
}