こんにちは、ANR (Application Not Responding) エラーが発生しましたが、その理由がわかりません。「待機」をクリックすると、すべてが完全に機能し、ANR はもう戻ってきません。
MediaPlayer をサービスとして使用する場合は、単純な .prepare() と .start() ではなく、.prepareAsync と onPrepared() メソッドを使用することをお勧めします。UI スレッドをロックせず、うまく機能します。
問題は、ファイルを開くときにすべての ANR が発生するわけではなく (より高いプロセッサがあると推測できます)、ファイルの再生中および CPU がせいぜい数 % のときにランダムに発生することです。先に述べたように、無反応に近いものは何もなく、UI スレッドにはほとんど残っていません。
唯一の手がかりは、最初にトラックを再生したときは ANR を取得せず、それが変更された後であるということです。prepareAsync スレッドが衝突していると思い、自分でロックを追加しました。変化なし。
新しいトラックを開始する前に、毎回メディア プレーヤーを解放しようとしました。変化なし
私は多くのシーケンスでリセット、停止などを試みました。変化なし。
誰も同じことを経験しましたか?
回避策として、ANR を自動的に却下する方法はありますか? それが答えではないことはわかっていますが、オプションが見つかりません。私はルート化されたタブレットを使用しています(ROMをコンパイルしました)、それは自分専用です-配布はありません
ありがとう