Управление сторонним активным аудио-плеером?

Ответить
Newbilius
Сообщения: 12
Зарегистрирован: 26 авг 2013, 13:02

Управление сторонним активным аудио-плеером?

Сообщение Newbilius » 03 янв 2014, 09:41

Привет! Есть такой вопрос. Вот есть скажем bluetoh-гарнитура. На ней кнопки "следующий трек", "предыдущий трек, "пауза/играть дальше". Она общается с телефоном, отдавая некие команды текущему (!) играющему плееру. Но как это повторить?
Интересует совместимость с 2.3.3 и выше.

Пробовал два варианта. Первый работает только с дефолтным плеером и не на всех телефонах.

Код: Выделить всё

Intent i = new Intent("com.android.music.musicservicecommand");
i.putExtra("command" , key ); //key - "togglepause","next","previous"
context.sendBroadcast(i);
Второй работает на всех телефонах, но если установлено несколько плееров - управляет не текущим, а только одним из них, по какому принципу выбирается плеер - понятия не имею. Т.е., если играет иной плеер - он ставится на паузу, а команду отдаются совершенно другому, который и запускается.

Код: Выделить всё

long eventtime = SystemClock.uptimeMillis() - 1;

//key - это KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE, KeyEvent.KEYCODE_MEDIA_NEXT, KeyEvent.KEYCODE_MEDIA_PREVIOUS

Intent downIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null);
KeyEvent downEvent = new KeyEvent(eventtime, eventtime, KeyEvent.ACTION_DOWN, key, 0);
downIntent.putExtra(Intent.EXTRA_KEY_EVENT, downEvent);
context.sendOrderedBroadcast(downIntent, null);

eventtime++;
Intent upIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null);
KeyEvent upEvent = new KeyEvent(eventtime, eventtime,KeyEvent.ACTION_UP, key, 0);
upIntent.putExtra(Intent.EXTRA_KEY_EVENT, upEvent);
context.sendOrderedBroadcast(upIntent, null);
Вот, ищу универсальную возможность, работающую стабильно.

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Управление сторонним активным аудио-плеером?

Сообщение altwin » 03 янв 2014, 18:45

вам явно нужен RemoteController, но что с ним делать я лично пока не разбирался.
Изображение

Newbilius
Сообщения: 12
Зарегистрирован: 26 авг 2013, 13:02

Re: Управление сторонним активным аудио-плеером?

Сообщение Newbilius » 03 янв 2014, 21:29

Added in API level 19.
А мне нужна совместимость с предыдущими. :(

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Управление сторонним активным аудио-плеером?

Сообщение altwin » 03 янв 2014, 23:06

Newbilius писал(а):Added in API level 19.
А мне нужна совместимость с предыдущими. :(
сочувствую. :cry:

P.S. вы понимаете что пытаетесь управлять сферическим конем в вакууме?
по какому принципу выбирается плеер - понятия не имею
по тому, какой поддерживает аппаратную команду гарнитуры я полагаю... Попробуйте в режиме отладки посмотреть что и куда шлет ваша гарнитура при нажатии на кнопки.
А вообще кнопка о которой вы говорили(на гарнитуре) - это ACTION_MEDIA_BUTTON, есть и reference
ну и есть такая вот штука: Handling remote control buttons
Изображение

Fhantom.TP
Сообщения: 1
Зарегистрирован: 02 фев 2014, 21:25

Re: Управление сторонним активным аудио-плеером?

Сообщение Fhantom.TP » 17 май 2014, 17:58

Newbilius писал(а):Привет! Есть такой вопрос. Вот есть скажем bluetoh-гарнитура. На ней кнопки "следующий трек", "предыдущий трек, "пауза/играть дальше". Она общается с телефоном, отдавая некие команды текущему (!) играющему плееру. Но как это повторить?
Интересует совместимость с 2.3.3 и выше.

Вот, ищу универсальную возможность, работающую стабильно.
Удалось ли вам что-то найти, вот столкнулся с такой -же проблемой пока не могу её решить.

Ответить