問題タブ [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.

0 投票する
2 に答える
2154 参照

android - SeekTo は MediaControllerCompat で onPlaybackStateChanged をトリガーしません

私はこのメディア プレーヤーを持っており、他のすべては正常に動作します。曲を開始すると、2 つの状態を通過します。最後の状態はPlaybackStateCompat.STATE_PLAYING

したがって、コールバックが登録されていると言えます。問題は、SeekBar リスナーをトリガーするたびにメソッドseekToがトリガーされずonPlaybackStateChanged、これが発生しないため、SeekBar を新しい進行状況に更新できないことです。これは UI にのみ関係します。SeekBar の進行状況を変更した後の進行状況から実際に音楽が再生されます。さらに、trackDurationTextView も更新されません。親指でシーク バーをドラッグしている間は値が変化しますが、離すと、シーク バーと同じように最初の進行状況に戻ります。

コールバックが登録されている場所はここにあります。

コールバックは次のように初期化されます。

これはOnSeekBarChangeListener

これは、シーク バーが更新された後に mLastPlayBackState.getPosition が新しい値を返す場所ですが、onPlaybackStateChanged が呼び出されないため、常に 0 を返します。理由はありますか?

0 投票する
2 に答える
831 参照

java - MediaControllerCompat のメモリ リーク

接続が確立されたMediaControllerCompatときにインスタンスが作成されます。MediaSessionこの接続が完了したら、MediaControllerCompat次の方法を作成します。

トークンは から取得されMediaSessionます。

戻るボタンを押すたびに漏れが検出されます。にコールバック/リスナーが登録されていませんMediaControllerCompat。アクティビティのメソッドで既にMediaControllernull に設定しようとしましたが、成功しませんでした。onDestroy()

以下の LeakCanary ログに従ってください。

誰でも私を助けることができますか?

前もって感謝します。