1

Я попытался просмотреть веб-страницы, чтобы посмотреть, что делает и использует MediaSessionManager для и считывает RemoteController (устаревший с API 21), поэтому я могу проверить, могут ли эти api решить мою проблему.Android: все, что я не знаю о MediaSessionManager и RemoteController

В настоящее время я использую AudioManger и отправлю событие ключа, чтобы остановить/приостановить/воспроизвести текущий звук с другого музыкального проигрывателя ... Он выполняет эту работу. Теперь мне интересно, можно ли это сделать для медиаплеера, например, приложение YouTube, которое воспроизводит видео и мое приложение с другого устройства, может действовать как пульт для управления воспроизведением видео на втором устройстве.

Я закончил читать MediaSessionManager. Он дает все активные сеансы мультимедиа с воспроизводящимися в данный момент музыкальными проигрывателями. Я не уверен, что это правильное решение для решения моего сценария выше. Поскольку я работаю над Android 4.4.2, я думаю, что MediaSessionManager, вероятно, не так, поэтому я нашел что-то, называемое RemoteController, но не знаю, как это работает и помогает ли оно решить мою проблему.

Здесь слишком много вещей, Не знаю, с чего начать.

ответ

2

Оба RemoteController и MediaController экземпляров извлекаемых через MediaSessionManager являются только локальным - они позволяют одно приложения на устройстве для управления воспроизведением другого приложения.

Если вы поддерживаете только API 21+ устройств, MediaSessionManager гораздо легче работать и надежнее, чем RemoteController, но если вы хотите, чтобы поддерживать устройства KitKat, то нет другого варианта, кроме RemoteController.

Конечно, после того, как пользователи активировали NotificationListenerService на устройстве, которое вы хотите контролировать, вы можете построить любое устройство на коммуникационном протоколе устройства, которое вы хотите отправить медиа-статус другому управляющему устройству, и отправить команды обратно на устройство, которое вы хочу контролировать. Однако эта инфраструктура будет чем-то уникальным для вашего приложения - таких встроенных классов нет.

+1

Спасибо Coz в данный момент я использую Thrift для отправки перечисления команды, такой как Play, Pause и т. Д. На принимающее устройство, и позволить приложению приемника обрабатывать связь, отправив ключевое событие в аудио-менеджер dm.dispatchKeyEven t или что-то в текущем музыкальном проигрывателе. Если RemoteController и NotificationListenerService могут обрабатывать, есть ли простой учебник, с которого я начну. Еще раз спасибо. – LittleFunny

+1

Ну, если вы просто хотите отправить команды, то dispatchKeyEvent достаточно. Вам понадобится только больше, если вы также хотите, чтобы информация о мультимедиа из игрового приложения – ianhanniballake

0

Вы можете легко создать в ожидании Intents будет обрабатываться приемными контроллерами с помощью

MediaButtonReceiver.buildMediaButtonPendingIntent() 

И добавив

MediaButtonReceiver.handleIntent() 

В коде приемника

Смежные вопросы