Подтвердить что ты не робот

Как передавать аудио с одного устройства Android на другое устройство Android Через Bluetooth?

Можно ли передавать аудио через Bluetooth? Во время моих исследований я обнаружил, что это возможно только с помощью A2DP(Advanced Audio Distribution Profile). И поддерживает ли любое устройство Android A2DP? Если нет, возможно ли передавать звук между двумя устройствами Android с помощью bluetooth? Пожалуйста, помогите мне понять это.

Я просмотрел следующие ссылки:

4b9b3361

Ответ 1

Можно ли передавать аудио через Bluetooth?

Ниже описана возможность передачи потокового аудио через Bluetooth между устройствами, но есть знак вопроса о его успехах, пока официальный Google не объявит, что У нас есть исправлена ​​проблема с потоковым потоком a2dp на N7. Следующий выпуск должен иметь исправление. Извините за проблему.

Исправить плохое качество A2DP в 4.2.2

Качество звука Bluetooth страдает после обновления до 4.2 с помощью Galaxy Nexus

Android 4.3 Качество звука Bluetooth для Fix для Nexus 7 Flo

И поддерживает ли любое устройство Android A2DP?

Поддержка совместимости упоминается на сайте разработчиков Android, который добавлен из API Level-11 with appropriate features. Но я наткнулся на прохождение XDA, где проблема с упоминанием OP в Android 2.1, означает также поддержку на предыдущих уровнях api, но проблемы с OP сталкиваются.

Надеюсь, что имеет смысл понять, и я хотел бы рекомендовать форум XDA, чтобы получить дополнительную информацию о совместимости A2DP и ​​ее успешности.

Ответ 2

Я считаю, что если A2DP не работает должным образом, лучше перейти на более низкий уровень, и мы можем создать базовый поток, который можно использовать для отправки любой формы даты. Мне удалось отправить поток байтов через Bluetooth между устройствами J2ME.

Если установить приложение на обоих устройствах приемлемо, у меня есть примеры кодов для создания Bluetooth-сервера и клиента для связи друг с другом через сокет, как только сокет установлен, вы можете отправить аудиопоток:)

Вот некоторые основные коды:

1) серверное устройство:

// you can generate your own UUID and use it as an port to eatablish a socket
private static final UUID MY_UUID = UUID.fromString("20687DAD-B023-F19E-2F60-A135554CC3FD")

BluetoothServerSocket serverSocket = mBluetoothAdapter.listenUsingRfcommWithServiceRecord(NAME_INSECURE, MY_UUID);

теперь у вас есть serverSocket, просто используйте его как обычный серверный сервер:

BluetoothSocket socket = serverSocket.accept();

а затем вы можете получить InputStream и OutputStream из этого BluetoothSocket и отправить аудиопоток точно так же, как HttpConnection

2) клиентское устройство:

Предположим, что у вас уже есть BluetoothDevice

// you should implement the method getBlutoothDevice
BluetoothDevice device = getBluetoothDevice();
BluetoothSocket socket = device.createRfcommSocketToServiceRecord(MY_UUID_SECURE);

Ответ 3

Вы также можете передавать аудио через базовое соединение SCO, которое не зависит от какого-либо профиля. Однако имейте в виду, что A2DP - это профиль, специально разработанный для потоковой передачи музыки. Таким образом, любая реализация, которую вы сделаете сами, будет страдать по качеству по сравнению с A2DP.

Если вы не передаете музыку на устройство, которое не поддерживает A2DP, я бы, безусловно, использовал A2DP. На самом деле, ваш единственный вариант - использовать ссылку SCO.

Ответ 4

Попробуйте использовать следующий фрагмент кода:

    public class AudioStream extends Activity {

 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  String url = "http://www.example.mp3";
  MediaPlayer mp = new MediaPlayer();
  try {
   mp.setDataSource(url);
   mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
   mp.prepare();
   mp.start();
  } catch (Exception e) {
   Log.i("Exception", "Exception in streaming = " + e);
  }
 }
}

Ответ 5

Это очень сложно сделать. Но я много исследовал и получил способ. Имеет несколько задержек, связи и проблем с корнем, но, по-видимому, работает. Для этого вам нужно будет установить приложение "AirAudio" на сервере и приемник "AllConnect". Затем вы открываете AirAudio на главном экране, а затем открываете AllConnect, нажимаете на свое устройство, затем на источники и выбираете сервер, затем выбираете потоковый mp3. Проблема в том, что задержка очень велика, а другой дефект заключается в том, что для передачи только звука системы сервера android у вас должен быть root на телефоне... Я также попробовал приемник потоковой передачи, являющийся VLC, был меньше отложено, но все равно Так неудобно.