我的 android 应用程序可以显示流媒体视频。我遇到了非常奇怪的 videoView 行为。VideoView的播放可以通过按钮开始/暂停,代码为:
playPause.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
boolean isPlaying = isChecked;
if (isPlaying)
{
videoView.pause();
}
else
{
videoView.start();
}
}
});
我调用 videoView.pause() 停止播放,调用 videoView.start() 开始/继续播放。我在 3 台设备上测试了这段代码:
1) Nexus 7,Android 4.2:播放正常,暂停正常,videoView.canPause() 返回 true。
2) 三星 Galaxy S3,Android 4.1:播放正常,暂停不会停止视频,canPause() 返回 true。
3) LG P-350,Android 2.2 - 播放正常,暂停不起作用,.canPause() 返回 false。
所以,我可以理解为什么它不能在 P-350 上暂停 - 因为 canPause 是错误的。但是 Galaxy S3(或 android 4.1 - 我不知道这种行为的原因是什么)是怎么回事?这只是一团糟......如何让它在所有设备上工作,而不仅仅是在其中一些设备上?
PS 如果我调用 .suspend()/.resume(),即使我们停留在同一位置,视频也会被缓冲,所以这不是一个选项。