Почему мое приложение для Android сообщает «Не удается воспроизвести видео» после воспроизведения?

У меня есть простое приложение, которое начинается с действия заставки, которое воспроизводит видео mp4 в VideoView. Когда видео завершено, я пытаюсь начать новую активность через OnCompletionListener.

Когда я запускаю приложение, видео работает отлично; воспроизведение звука и аудио, как и ожидалось. После завершения видео приложение отображает диалоговое окно с заголовком «Не удается воспроизвести видео» и продолжает работу в обычном режиме после нажатия кнопки «ОК». Проблема возникает только тогда, когда я добавляю звук в mp4, созданный с помощью Adobe After Effects. Я использовал точно такое же видео без звуковой дорожки, и эта ошибка не возникает. Я предполагаю, что кодировка файла в порядке, поскольку он полностью воспроизводится перед отображением диалогового окна.

Вот мой код:

public class Splash extends Activity {


 @Override  
 public void onCreate(Bundle savedInstanceState) {  

     super.onCreate(savedInstanceState);
     setContentView(R.layout.splash);

     Uri video = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.audio_intro); 

     VideoView videoview = (VideoView) findViewById(R.id.splash_view);
     videoview.setKeepScreenOn(true);  
     videoview.setVideoURI(video);

     videoview.setOnCompletionListener(new OnCompletionListener() {  
           public void onCompletion(MediaPlayer mp) {  
                 Intent intent = new Intent(Splash.this, Menu.class);
                 startActivity(intent);
                 finish();
           }
     });

     videoview.requestFocus();
     videoview.start();
 }

}

Вот что показывает LogCat:

06-30 14:49:33.095: V/MediaPlayer-JNI(21544): native_setup
06-30 14:49:33.095: V/MediaPlayer(21544): constructor
06-30 14:49:33.095: V/MediaPlayer(21544): setListener
06-30 14:49:33.095: I/MediaPlayer(21544): path is null
06-30 14:49:33.095: V/MediaPlayer-JNI(21544): setDataSourceFD: fd 54
06-30 14:49:33.095: V/MediaPlayer(21544): setDataSource(54, 2521, 173889)
06-30 14:49:33.110: V/MediaPlayer(21544): setVideoSurfaceTexture
06-30 14:49:33.110: V/MediaPlayer-JNI(21544): setAudioStreamType: 3
06-30 14:49:33.110: V/MediaPlayer(21544): MediaPlayer::setAudioStreamType
06-30 14:49:33.110: V/MediaPlayer(21544): setVideoSurfaceTexture
06-30 14:49:33.110: V/MediaPlayer(21544): prepareAsync
06-30 14:49:33.140: V/MediaPlayer(21544): message received msg=5, ext1=480, ext2=270
06-30 14:49:33.140: V/MediaPlayer(21544): New video size 480 x 270
06-30 14:49:33.140: V/MediaPlayer(21544): callback application
06-30 14:49:33.140: V/MediaPlayer(21544): back from callback
06-30 14:49:33.140: V/MediaPlayer(21544): message received msg=1, ext1=0, ext2=0
06-30 14:49:33.140: V/MediaPlayer(21544): prepared
06-30 14:49:33.140: V/MediaPlayer(21544): callback application
06-30 14:49:33.140: V/MediaPlayer(21544): back from callback
06-30 14:49:33.145: I/MediaPlayer(21544): mOnVideoSizeChangedListener. Send MEDIA_SET_VIDEO_SIZE message.
06-30 14:49:33.145: V/MediaPlayer(21544): getVideoWidth
06-30 14:49:33.145: V/MediaPlayer-JNI(21544): getVideoWidth: 480
06-30 14:49:33.145: V/MediaPlayer(21544): getVideoHeight
06-30 14:49:33.145: V/MediaPlayer-JNI(21544): getVideoHeight: 270
06-30 14:49:33.145: I/MediaPlayer(21544): mOnPreparedListener. Send MEDIA_PREPARED message.
06-30 14:49:33.145: D/MediaPlayer(21544): getMetadata
06-30 14:49:33.145: V/MediaPlayer(21544): getVideoWidth
06-30 14:49:33.145: V/MediaPlayer-JNI(21544): getVideoWidth: 480
06-30 14:49:33.145: V/MediaPlayer(21544): getVideoHeight
06-30 14:49:33.145: V/MediaPlayer-JNI(21544): getVideoHeight: 270
06-30 14:49:33.170: I/MediaPlayer(21544): sendBroadcast android.media.IMediaPlayer.videoexist
06-30 14:49:33.170: V/MediaPlayer-JNI(21544): start
06-30 14:49:33.170: V/MediaPlayer(21544): start
06-30 14:49:37.915: V/MediaPlayer(21544): message received msg=100, ext1=1, ext2=-1007
06-30 14:49:37.915: E/MediaPlayer(21544): error (1, -1007)
06-30 14:49:37.915: V/MediaPlayer(21544): callback application
06-30 14:49:37.915: V/MediaPlayer(21544): back from callback
06-30 14:49:37.915: E/MediaPlayer(21544): Error (1,-1007)
06-30 14:49:37.915: D/VideoView(21544): Error: 1,-1007

Я надеюсь, что кто-то может мне помочь, так как я пробовал несколько вещей, чтобы решить эту проблему, и, похоже, нигде не могу найти подобную проблему, упоминаемую/решенную. Спасибо.

5
задан DeanHyde 30 June 2012 в 13:59
поделиться