私のアプリでは、MediaPlayer API を使用してオーディオ プレーヤー (WAV ファイルのみ) を作成しました。しかし、プレーヤーは毎回 onCompletion Listener にコールバックを与えません。コールバックを返すこともありますが、毎回ではありません。挿入や上書きなど、wavファイルでオーディオ処理を行っています。
オーディオヘッダーに欠落があるためですか?再生が完了したときにコールバックを返さないのはなぜですか?
私のアプリでは、MediaPlayer API を使用してオーディオ プレーヤー (WAV ファイルのみ) を作成しました。しかし、プレーヤーは毎回 onCompletion Listener にコールバックを与えません。コールバックを返すこともありますが、毎回ではありません。挿入や上書きなど、wavファイルでオーディオ処理を行っています。
オーディオヘッダーに欠落があるためですか?再生が完了したときにコールバックを返さないのはなぜですか?
ファイルのヘッダーが正しく設定されていることを確認してください。ヘッダーに何かが欠けcallback
ていると、onCompletion
発生しない場合があります。
mediaplayer が.wav
ファイルを再生している場合、シークは正しく行われる可能性がありますが、ジャークが発生します。そのため、再生が完了すると、ファイルの合計時間とonCompletion
それぞれの間に 0 ~ 1000 ミリ秒の差が生じます。したがって、そのような状況が発生した場合は、onColmpletion としてそれを推測し、必要に応じて実行する必要があります。を取得するのは少しトリッキーな方法onCompletion
です。
.wav
mediaplayer でファイルを再生しているときに、同じ問題に直面しました。これはこの問題を解決する良い方法ではありませんが、同じ状況にあったときに、このような同じ問題に取り組みました。これが何らかの形であなたにも役立つことを願っています。
録音が完了したら、スリープ方式を使用してみてください。また使用します。クラッシュを避けるために、プレースバックが発生する前に .prepare() を実行します。