私の 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) Samsung Galaxy S3、Android 4.1: 再生は正常に動作し、一時停止してもビデオは停止せず、canPause() は true を返します。
3) LG P-350、Android 2.2 - 再生は正常に機能しますが、一時停止は機能しません。.canPause() は false を返します。
したがって、P-350 で一時停止できない理由は理解できます。canPause が false であるためです。しかし、Galaxy S3 (または android 4.1 - そのような動作の理由がわかりません) で何が起こっているのでしょうか? これはただの混乱です...一部のデバイスだけでなく、すべてのデバイスでこれを機能させるにはどうすればよいですか?
PS .suspend()/.resume() を呼び出すと、同じ位置にいてもビデオがバッファリングされるため、これはオプションではありません。