2012-03-15 21 views
9

私は、RemoteControlClientクラスを使用して、アプリケーションでロックスクリーンプレーヤーをサポートしようとしています。 1つの問題は、トランスポート制御フラグが正しく動作しないように設定されていることです。Android 4.x RemoteControlClient.setTransportControlFlags()が機能していませんか?

mRemoteControlClient.setTransportControlFlags(
         RemoteControlClient.FLAG_KEY_MEDIA_PLAY_PAUSE | 
         RemoteControlClient.FLAG_KEY_MEDIA_STOP); 

これは、以前のアイコンを表示し、アイコンを一時停止します。たとえば

は、私はちょうどノー前/次の再生/停止アイコンを表示しようとしています!どうして?

停止/再生ボタンを押したときに状態がさらに悪化する場合は、KEYCODE_MEDIA_STOPまたはKEYCODE_MEDIA_PLAYになるはずです。KEYCODE_MEDIA_PLAY_PAUSEと表示されます。

これを正しく実行していることが判明した場合、これはAndroid側での不満足な開発です。

+1

私は、以前のボタンと同じ問題に気づいた、そしてそれを回避する方法があるようには思えません。 FLAG_KEY_MEDIA_PLAY_PAUSE、FLAG_KEY_MEDIA_STOP、KEYCODE_MEDIA_PLAYの場合は、FLAG_KEY_MEDIA_PLAY_PAUSEは指定した内容に関係なく常に使用されているようです。ただし、FLAG_KEY_MEDIA_PLAY_PAUSEからKEYCODE_MEDIA_PLAY_PAUSEを受け取る必要があります。それがうまくいけば、FLAG_KEY_MEDIA_PLAYを指定してKEYCODE_MEDIA_PLAYを受け取ることができます。 –

+0

不適切なメディアボタンについては、http://code.google.com/p/android/issues/detail?id=29920を参照してください。 – svenmeier

+0

バグURLをありがとう。 – Jona

答えて

0

FLAG_KEY_MEDIA_STOPは、ここで報告したようにアンドロイドにバグのために停止表示されません: https://code.google.com/p/android/issues/detail?id=29920

あなたはフラグPLAY_PAUSEを使用する場合はKEYCODE_MEDIA_STOPイベントを生成してはならないです。それはなぜだろう? これは意図したとおりに再生/一時停止のトグル動作です。メディアプレーヤーの状態を保存するのはアプリケーションの責任です。

ドキュメントを正しく理解している場合は、フラグFLAG_KEY_MEDIA_PLAYおよびFLAG_KEY_MEDIA_PAUSEを使用する場合にのみ、KEYCODE_MEDIA_PLAYまたはKEYCODE_MEDIA_PAUSEを取得できます。 しかし、アンドロイドは "賢い"かもしれないし、それをトグルに変換します。 私はそれについては分かりません。 RemoteControlClient ;-)へ

0

FLAG_KEY_MEDIA_PLAY_PAUSEを使用

oRemoteControlClient.setTransportControlFlags(RemoteControlClient.FLAG_KEY_MEDIA_PLAY_PAUSE);

そして嘘

ストリームがバッファリングであり、それは停止ボタンが表示されます、彼を教えて!

oRemoteControlClient.setPlaybackState(RemoteControlClient.PLAYSTATE_BUFFERING);

乾杯

関連する問題