Один медиаконтроллер для двух просмотров видео android

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

//2 video views 

videoview=(VideoView)findviewbyid(R.id.videowview);
videoviewtwo=(VideoView)findviewbyid(R.id.videowview2);

//the media controller

 MediaController mc =new MediaController(this);

//setting uri for both:

videoview.setVideoURI(uri);
videoviewtwo.setVideoURI(uri1);

//setting same media controller object for both
 videoview.setMediaController(mc);
 videoviewtwo.setMediaController(mc);

//finally start both

 videoview.Start();
 videoviewtwo.Start();

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

Изменить: я хочу, чтобы они оба играли одновременно каждый раз, когда я повторяю процесс.


person hasan    schedule 19.05.2017    source источник


Ответы (1)


Вам нужно отпустить и установить медиаплеер на ноль, прежде чем вы сможете начать новое видео. Попробуйте вызвать это, когда видео остановилось и перед тем, как начать новое видео, чтобы вы знали, что медиаплеер не занят.

    private void releaseMediaPlayer() {
        mMediaPlayer.release();
        mMediaPlayer = null;
}

Итак, теперь нужно выяснить, когда медиаплеер перестал воспроизводить ваше видео. Подсказка: MediaPlayer.OnCompletionListener

person Thomaslian    schedule 19.05.2017
comment
Я не использую здесь медиаплеер. вы имеете в виду медиаконтроллер? - person hasan; 19.05.2017
comment
Я не уверен, какой код вы используете, но вы вообще используете MediaPlayer? Медиаконтроллер — это всего лишь контроллер для MediaPlayer. Вам действительно стоит взглянуть на эту страницу developer.android.com/reference/android. /media/MediaPlayer.html - person Thomaslian; 19.05.2017
comment
Я использую просмотр видео, зачем мне медиаплеер? - person hasan; 19.05.2017
comment
Черт, мне жаль. В последний день я много работал со звуком, поэтому MediaPlayer — это все, что сейчас у меня в голове. Но вы правы, вы должны использовать VideoView. Не могли бы вы попробовать добавить requestFocus() перед запуском каждого видео? Пример videoview.requestFocus(); - person Thomaslian; 20.05.2017
comment
позвольте мне еще раз объяснить проблему, я хочу, чтобы оба видео воспроизводились одновременно с использованием одного и того же медиа-контроллера, но проблема в том, что только одно видео отвечает, когда я нажимаю на медиа-контроллер, а другое нет, как я могу управлять обоими на в то же время вопрос, спасибо за ваше время. - person hasan; 20.05.2017
comment
О, вы хотите, чтобы они играли в одно и то же время. Вы должны проверить этот пост для получения дополнительной информации side-in-di/10161316#10161316" title="как одновременно воспроизводить несколько видеофайлов в одном макете рядом в di"> stackoverflow.com/questions/9834882/ - person Thomaslian; 20.05.2017