媒体控制器在Nexus 7平板电��上无法工作

5

我有一个Android代码,使用VideoView播放视频,并使用MediaController控制按钮,如暂停、快退和快进。它在Nexus S以及许多三星手机上运行良好,但是在Nexus 7上似乎无法使用MediaController按钮!我需要它在所有设备上都能正常工作。我需要做一些额外的事情吗?

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

问题跟踪器链接(目前没有回复):https://code.google.com/p/android/issues/detail?id=59776 - Geobits
1个回答

3

我刚刚在无法使用MediaController在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而不是ApiDemos中建议的VideoView。

 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);

在使用VideoView和Player时,我遇到了与@kriswiz相同的问题,于是我打开了bug code.google.com/p/android/issues/detail?id=59776。现在,该视频可以在Nexus 7和三星Nexus上播放。


是的,我看到了和你一样的帖子:“无法在Android中使用MediaController暂停/前进/后退视频”。我也尝试过,但对我没有用。 - kriswiz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接