サーバーから音声ファイルをストリーミングしています。インターネット接続が失われ、プレーヤーがバッファリングされた部分の最後に到達した場合の状況を処理しています (バッファリングされていない曲の一部があります)。OnErrorListener、OnInfoListener、および OnCompletionListener を実装しました。これはonInfoメソッドです
@Override
public boolean onInfo(MediaPlayer mp, int what, int extra) {
if (what == MediaPlayer.MEDIA_INFO_BUFFERING_START && !Utils.isInternetConected()) {
//handle situation
}
return true;
}
新しいデバイスでは、これはバッファリングされた部分の最後に到達する直前に呼び出されます。しかし、古いデバイスでは、onError も onInfo もバッファリングされた部分の最後に到達するときに呼び出されません。onComplete() のみが呼び出されます。古いデバイスでは、2.3.3 - 2.3.7 を理解しています (3 つのデバイスでテストしました)。 MEDIA_INFO_BUFFERING_START は API レベル 9 で導入されました。私のデバイスは API 9 または 10 です。古いデバイスで呼び出され、onCompletion が自動的に呼び出されますか? 前もって感謝します