Привет в моем приложении для Android. Я использую videoview для потоковой передачи моих видео. Мне очень не нравится поведение моего видео. Сценарий выглядит следующим образом. У меня есть активность A и активность B. Активность A имеет одну простую кнопку, и при нажатии этой кнопки я начинаю деятельность B, которая содержит видео и начинает воспроизводить видео, как только начнется моя деятельность. Поэтому мое наблюдение выглядит следующим образом: как только я начну деятельность B, он назовет setVideoURI
и start()
. существует несколько методов обратного вызова, один из которых - setOnPreparedListener
. когда я звоню start()
через некоторое время Выполняется setOnPreparedListener
, после чего он начнет воспроизводить видео. Но между ними перед выполнением setOnPreparedListener
, если я вернусь к Activity A, он некоторое время заблокирует этот пользовательский интерфейс активности. Но если я подожду до тех пор, пока setOnPreparedListener
не исполнится, а затем вернемся к Activity A, тогда он будет работать правильно. Это не происходит со всеми устройствами только с устройствами Google, такими как moto g и nexus. Но я попытался с помощью htc или intel-устройства работать нормально. Мой код выглядит так:Android videoview вызывает блокировку элементов пользовательского интерфейса
VideoView mVideoView =(VideoView)findViewById(R.id.myVideo);
//Creating MediaController
MediaController mediaController= new MediaController(this);
mediaController.setAnchorView(mVideoView);
//specify the location of media file
Uri uri=Uri.parse("http://abcExample.com/playlist.m3u8");
//Setting MediaController and URI, then starting the videoView
mVideoView.setMediaController(mediaController);
mVideoView.setVideoURI(uri);
mVideoView.requestFocus();
mVideoView.start();
mVideoView.setOnErrorListener(new OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
Log.i("this is video view sample ... ", "this is video view sample ... this is on error listener ");
return true;
}
});
mVideoView.setOnPreparedListener(new OnPreparedListener()
{
@Override
public void onPrepared(MediaPlayer mp)
{
Log.i("this is video view sample ... ", "this is video view sample ... this is on prepared listener ");
}
});
mVideoView.setOnCompletionListener(new OnCompletionListener()
{
@Override
public void onCompletion(MediaPlayer mp)
{
Log.i("this is video view sample ... ", "this is video view sample ... this is on complete listener ");
}
});
Я пропустил что-то или что-то не так? Нужна помощь. Спасибо.
Кто-нибудь знает об этом? – nilkash
Я тестировал видеоролики mp4 и hls. Для hls-видео он задает этот вопрос, иначе для mp4 он работает нормально. – nilkash