問題タブ [android-mediasession]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - SeekTo は MediaControllerCompat で onPlaybackStateChanged をトリガーしません
私はこのメディア プレーヤーを持っており、他のすべては正常に動作します。曲を開始すると、2 つの状態を通過します。最後の状態はPlaybackStateCompat.STATE_PLAYING
したがって、コールバックが登録されていると言えます。問題は、SeekBar リスナーをトリガーするたびにメソッドseekTo
がトリガーされずonPlaybackStateChanged
、これが発生しないため、SeekBar を新しい進行状況に更新できないことです。これは UI にのみ関係します。SeekBar の進行状況を変更した後の進行状況から実際に音楽が再生されます。さらに、trackDurationTextView も更新されません。親指でシーク バーをドラッグしている間は値が変化しますが、離すと、シーク バーと同じように最初の進行状況に戻ります。
コールバックが登録されている場所はここにあります。
コールバックは次のように初期化されます。
これはOnSeekBarChangeListener
これは、シーク バーが更新された後に mLastPlayBackState.getPosition が新しい値を返す場所ですが、onPlaybackStateChanged が呼び出されないため、常に 0 を返します。理由はありますか?
java - MediaControllerCompat のメモリ リーク
接続が確立されたMediaControllerCompat
ときにインスタンスが作成されます。MediaSession
この接続が完了したら、MediaControllerCompat
次の方法を作成します。
トークンは から取得されMediaSession
ます。
戻るボタンを押すたびに漏れが検出されます。にコールバック/リスナーが登録されていませんMediaControllerCompat
。アクティビティのメソッドで既にMediaController
null に設定しようとしましたが、成功しませんでした。onDestroy()
以下の LeakCanary ログに従ってください。
誰でも私を助けることができますか?
前もって感謝します。