2012-03-15 54 views
9

我正在嘗試使用RemoteControlClient類來支持與我的應用程序的鎖屏播放器。一個問題是設置傳輸控制標誌看起來好像不能正常工作。Android 4.x RemoteControlClient.setTransportControlFlags()不工作?

比如我想只顯示沒有上/下一個播放/停止圖標:

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

這說明以前的圖標和暫停圖標!爲什麼?

如果按下停止/播放按鈕時,情況會更糟糕,您只能在收到KEYCODE_MEDIA_STOPKEYCODE_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。 – 2012-03-25 21:31:30

+0

有關錯誤的媒體按鈕,請參閱http://code.google.com/p/android/issues/detail?id=29920。 – svenmeier 2012-05-02 09:35:48

+0

感謝您的錯誤URL。 – Jona 2012-05-02 12:09:38

回答

0

的FLAG_KEY_MEDIA_STOP從未停止顯示,因爲機器人的bug報告如下: 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。 但是android可能會「聰明」並將其翻譯爲切換。 我不確定。

0

使用FLAG_KEY_MEDIA_PLAY_PAUSE

oRemoteControlClient.setTransportControlFlags(RemoteControlClient.FLAG_KEY_MEDIA_PLAY_PAUSE);

與謊言,RemoteControlClient ;-)

告訴他,流緩衝和它會顯示停止按鈕!

oRemoteControlClient.setPlaybackState(RemoteControlClient.PLAYSTATE_BUFFERING);

乾杯

相關問題