2016-11-12 102 views
1

我試着瀏覽網頁,看看MediaSessionManager做了什麼,並用於閱讀RemoteController(自API 21以來已棄用),以便我可以看到這些API是否可以解決我的問題。Android:事情我不清楚MediaSessionManager和RemoteController

目前,我正在使用AudioManger併發送關鍵事件以停止/暫停/播放來自其他音樂播放器的當前音頻......它的確行得通。現在我想知道是否可以爲媒體播放器(例如YouTube應用)播放視頻,而其他設備上的我的應用可以像遙控器一樣控制第二臺設備上的視頻播放。

我結束了閱讀MediaSessionManager。它爲當前正在播放的音樂播放器提供所有活動媒體會話。我不確定是否是解決上述情況的正確解決方案。由於我在使用Android 4.4.2,我認爲MediaSessionManager可能不是正確的方式,所以我找到了一個名爲RemoteController的東西,但不確定它是如何工作的以及它是否有助於解決我的問題

這裏有太多東西,我不喜歡不知道從哪裏開始。

回答

2

RemoteController都和MediaController實例通過MediaSessionManager可回收是本地唯一 - 它們允許設備上的一個應用程序,以控制另一個應用程序的播放。

如果只支持API 21+設備,MediaSessionManagerRemoteController更容易使用,可靠的,但如果你也想支持奇巧設備,那麼有沒有其他的選擇比RemoteController

當然,一旦用戶啓用了想要控制的設備上的NotificationListenerService,您可以構建任何設備到設備通信協議,以便將媒體狀態發送到其他控制設備,並將命令發回給設備想要控制。這種基礎架構對於你的應用來說是獨一無二的 - 沒有內置的類可以實現這一點。

+1

多虧堂妹在我使用的那一刻處理節儉將諸如播放,暫停等命令的枚舉發送到接收設備,並讓接收器應用程序通過將關鍵事件發送到音頻管理器來處理通信dm.dispatchKeyEven對當前的音樂播放器或其他東西。如果RemoteController和NotificationListenerService可以處理,是否有一個簡單的教程讓我開始。再次感謝。 – LittleFunny

+1

那麼,如果你只是想發送命令,那麼dispatchKeyEvent就足夠了。如果您還想從播放應用程序獲取媒體信息,則只需要更多 – ianhanniballake

0

您可以輕鬆創建掛起的意圖要由接收控制器使用

MediaButtonReceiver.buildMediaButtonPendingIntent() 

並添加

MediaButtonReceiver.handleIntent() 

在您的接收器的代碼