2016-09-22 112 views
1

允許與媒體控制器,音量鍵,媒體按鈕和傳輸控件進行交互。Android MediaSession按鈕

MediaSession文檔聲明它可以與媒體按鈕和傳輸控件一起使用。它只包含設備上的物理按鈕,還是可以實現觸發MediaSession回調的UI按鈕?

回答

1

確實如此。

首先,你需要一個監聽媒體鍵事件服務,所以聲明它從你表現出像這樣

 <service android:name="com.example.android.MediaPlaybackService" > 
    <intent-filter> 
    <action android:name="android.intent.action.MEDIA_BUTTON" /> 
    </intent-filter> 
</service> 

在該服務中,你應該初始化MediaSessionCompat對象,並通過你用它收到一起意圖在MediaButtonReceiver像這樣

private MediaSessionCompat mMediaSessionCompat = ...; 

public int onStartCommand(Intent intent, int flags, int startId) { 
    MediaButtonReceiver.handleIntent(mMediaSessionCompat, intent); 
    return super.onStartCommand(intent, flags, startId); 
} 

您也可能想要創建的MediaSessionCompat.Callback一個實例,並設置它

setCallback() 

在這裏,您將實際控制正在播放 您還可以通過自己的UI使用的MediaControllerCompat一個實例使用它的方法getTransportControls()調用這些交通控制媒體

這裏更多 MediaButtonReceiver