2013-08-20 3 views
5

У меня есть код для Android для воспроизведения видео с помощью видеовизуальных и управляющих кнопок, таких как пауза, перемотка назад и вперед с помощью mediacontroller. Он работает на Nexus S, а также на многих телефонах samsung, но кнопки mediacontroller, похоже, не работают на Nexus 7! Мне нужно, чтобы он работал на всех устройствах. Есть ли что-то дополнительное, что мне нужно сделать?mediacontroller не работает на nexus 7 tab

MediaController mediacontroller = new MediaController(Activity.this); 
mediacontroller.setAnchorView(videoview); 
Uri video = Uri.parse("path/to/video"); 
videoview.setMediaController(mediacontroller); 
videoview.setVideoURI(video); 
videoview.start(); 
+0

Ссылка для устранения проблемы (в настоящее время нет ответов): https://code.google.com/p/android/issues/detail?id=59776 – Geobits

ответ

3

Только наткнулся на этот ответ в Unable to pause/forward/backward video using mediacontroller in android. У некоторых устройств LG, похоже, тоже есть эта проблема.

Как отметил @Vineela Yarlagadda, вам необходимо переопределить методы VideoView ниже

@Override 
public boolean canSeekForward() { 
    return true; 
} 

@Override 
public boolean canSeekBackward() { 
    return true; 
} 

@Override 
public boolean canPause() { 
    return true; 
} 

Испытано & работы на Nexus 7.


Альтернативное решение: Используйте SurfaceView вместо VideoView, как показано в примере кода в ApiDemos.

setContentView(R.layout.media_player2); 
mSurface = (SurfaceView) findViewById(R.id.surface); 
holder = mSurface.getHolder(); 
holder.addCallback(this); 

mMediaPlayer = new MediaPlayer(); 
mMediaPlayer.setDataSource(stream); 
mMediaPlayer.setDisplay(holder); 
mMediaPlayer.prepareAsync(); 
mController = new MediaController(this); 
mMediaPlayer.setOnBufferingUpdateListener(this); 
mMediaPlayer.setOnCompletionListener(this); 
mMediaPlayer.setOnPreparedListener(this); 
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
mController.setMediaPlayer(this); 
mController.setAnchorView(mSurface); 

Я открыл ошибка code.google.com/p/android/issues/detail?id=59776 после столкновения с такой же вопрос, как @kriswiz, когда я использовал VideoView и Player. Теперь видео будет воспроизводиться на Nexus 7 и Samsung Nexus.

+0

Да, я видел тот же пост, что и вы «Не удалось приостановить/переслать/обратное видео с помощью mediacontroller в android ». Пробовал тоже, но не работал для меня. – kriswiz