2013-05-23 6 views
0

У меня есть устройство Android 4.1, которое подключено к стереодинамику A2DP.Отключить вывод A2DP на Android для TTS

Мое приложение использует TTS (Text-To-Speech) и класс AudioTrack для потоковой передачи пользовательского звука в динамик.

Возможно использование динамика телефона для TTS.

Для exmaple:

  1. Звук льется в A2DP устройство
  2. Стоп звуковой выход
  3. Переключение на динамик телефона
  4. Start TTS
  5. Swith назад A2DP
  6. Start поток снова

ответ

0

По моему опыту, я не думаю, что это возможно. Если вы просто хотите подключить любое Bluetooth-устройство и иметь динамик телефона для TTS, это можно сделать легко, изменив настройку «Устройство мультимедиа» при соединении Bluetooth-устройства. Меняя этот параметр программно, я думаю, что это невозможно.

EDIT: Чтобы проверить эту настройку перейти к сопряженному устройств: enter image description here

и если вы нажмете на небольшой винтик рядом с конкретным устройством вы увидите эту опцию (Media Audio) enter image description here

И когда вы хотите отключить только разблокировку разъема bluetooth и закрыть потоки. Что-то вроде:

if (streamInput != null) 
    { 
     streamInput.close(); 
     streamInput = null; 
    } 
    if (streamOutput != null) 
    { 
     streamOutput.close(); 
     streamOutput = null; 
    } 
    if (bluetoothSocket != null) 
    { 
     bluetoothSocket.close(); 
     bluetoothSocket = null; 
    } 

(Это закрывает соединение - устройство будет оставаться в паре и, если вы хотите отключить Bluetooth вобще bluetoothAdapter.disable();.)

+0

Спасибо за ваш ответ! Как изменить настройку «Устройство мультимедиа» для TTS? Я не нашел элемент настроек для этого ... И можно ли программно отключить динамик Bluetooth? – jetzi06

+0

Элемент настроек «Звонить аудио» недоступен на моем устройстве (Nexus S с Android 4.1.2) – jetzi06

+0

Звук мультимедиа - это тот, который имеет значение. Скриншоты из Galaxy S3 с v4.1.1) –