申し訳ありませんが、その質問を間違ったユーザーとして投稿しました。ここで私が試したことの答え:
android.widget 内と io.vov.vitamio.widget (vitamio - ほとんどのビデオ フォーマットを再生) パッケージからの VideoView (Android デフォルト - いくつかのビデオ フォーマットを再生するだけ) は同じ構造を持っています。両方で、バッファ状態をパーセントで返す OnBufferingUdateListener を登録できます。
videoview.setOnBufferingUpdateListener(new io.vov.vitamio.MediaPlayer.OnBufferingUpdateListener() {
public void onBufferingUpdate(io.vov.vitamio.MediaPlayer mp, int i) {
Log.v(TAG, "Buffer percentage done: "+i);
}
});
またはAndroidのデフォルトのVideoViewを使用:
videoview.setOnBufferingUpdateListener(new android.media.MediaPlayer.OnBufferingUpdateListener() {
public void onBufferingUpdate(android.media.MediaPlayer mp, int i) {
Log.v(TAG, "Buffer percentage done: "+i);
}
});
android.widget.VideoView を使用すると、バッファーの割合が 100% に達するまでゆっくりと増加します。ビデオ ファイルは完全にダウンロードされています。そして、一時停止ボタンを押すと、BufferingUpdate が更新され続けます。
io.vov.vitamio.widget.VideoView を使用すると、パーセンテージは数秒で 100% に達します。その後、ビデオが開始され、OnBufferingUpdateListener が再度呼び出されることはありません (getBufferPercentage を呼び出すと、常に 99% になります。それが理由のようです)。そして、私が言ったように:一時停止ボタンを押すと、バッファリングが停止するようです。
vitamio ではバッファリングの動作が異なると思います。しかし、それはがらくたです。特に、ウェブからビデオをストリーミングし、ビデオのデータレートがダウンロード速度よりも高い場合、一時停止を押してビデオをプリバッファし、スムーズに視聴するのに十分なデータがダウンロードされるまで待つ必要があります。あなたが私が意味することを願っています。ありがとうございました