Ich versuche, die RemoteControlClient-Klasse zu verwenden, um den Sperrbildschirm-Player mit meiner App zu unterstützen. Ein Problem besteht darin, dass das Festlegen der Transportsteuerungsflags so aussieht, als ob sie nicht richtig funktionieren.
Ich versuche zum Beispiel, nur ein Play / Stop-Icon zu zeigen prev / next:
%Vor%Dies zeigt ein vorheriges Symbol und ein Pausensymbol! Warum?
Um die Dinge noch schlimmer zu machen, wenn Sie die Stop / Play-Taste drücken, erhalten Sie nur KEYCODE_MEDIA_PLAY_PAUSE
, wenn Sie KEYCODE_MEDIA_STOP
oder KEYCODE_MEDIA_PLAY
erhalten sollten.
Das ist eine frustrierende Entwicklung auf Android-Seite, wenn ich herausfinde, dass ich das richtig mache.
Der FLAG_KEY_MEDIA_STOP zeigt nie einen Stopp wegen eines Fehlers in Android an, wie hier gemeldet: Ссылка
Wenn Sie das Flag PLAY_PAUSE verwenden, sollte dies nicht zu einem KEYCODE_MEDIA_STOP-Ereignis führen. Warum sollte es? Es ist eine Umschaltfunktion für Wiedergabe / Pause, die das tut, was sie beabsichtigt. Es liegt an Ihrer Anwendung, den Status Ihres Media Players zu speichern.
Wenn ich die Dokumentation richtig verstehe, könnten Sie KEYCODE_MEDIA_PLAY oder KEYCODE_MEDIA_PAUSE nur dann erhalten, wenn Sie die Flags FLAG_KEY_MEDIA_PLAY und FLAG_KEY_MEDIA_PAUSE verwenden. Aber Android könnte "schlau" sein und es in einen Toggle übersetzen. Da bin ich mir nicht sicher.
Verwenden Sie die FLAG_KEY_MEDIA_PLAY_PAUSE
oRemoteControlClient.setTransportControlFlags(RemoteControlClient.FLAG_KEY_MEDIA_PLAY_PAUSE);
Und lüge zum RemoteControlClient; -)
Sagen Sie ihm, dass der Stream gepuffert ist und der Stopp-Button erscheint!
oRemoteControlClient.setPlaybackState(RemoteControlClient.PLAYSTATE_BUFFERING);
Prost
Tags und Links android remote-control android-remoteview