Est-il possible de diffuser de l'audio via Bluetooth? Au cours de mes recherches, j'ai découvert que cela n'était possible qu'en utilisant A2DP(Advanced Audio Distribution Profile)
. Et chaque appareil Android prend en charge A2DP? Sinon, est-il possible de diffuser de l'audio entre deux Android utilisant Bluetooth)? Aidez-moi à comprendre cela.
J'ai parcouru les liens suivants:
Est-il possible de diffuser de l'audio via Bluetooth?
Le type de fil ci-dessous indique sa possibilité que le streaming audio via Bluetooth soit possible entre les appareils, mais il y avait un point d'interrogation sur ses taux de réussite jusqu'à ce que le responsable de Google annonce que Nous avons corrigé le bégaiement de streaming a2dp problème sur N7. La prochaine version devrait avoir le correctif. Désolé pour le problème.
Correction d'une mauvaise qualité A2DP sur 4.2.2
La qualité du son Bluetooth souffre après la mise à niveau vers 4.2 avec Galaxy Nexus
Android 4.3 Correction de la qualité audio Bluetooth pour Nexus 7 Flo
Et chaque appareil Android prend-il en charge A2DP?
La compatibilité du support est mentionnée sur site des développeurs Android que son ajouté à partir de API Level-11 with appropriate features.
Mais je suis tombé sur bande de roulement XDA où OP mentionne un problème dans Android 2.1
, signifie qu'il prend également en charge les niveaux d'api précédents mais que OP est confronté à des problèmes.
J'espère que cela a du sens pour comprendre et je voudrais recommander de se référer forum XDA pour obtenir plus d'informations sur la compatibilité A2DP et son succès.
Je pense que si A2DP ne fonctionne pas correctement, nous ferions mieux de passer à la couche inférieure et nous pouvons créer un flux de base qui peut être utilisé pour envoyer n'importe quelle forme de date. Je parviens à envoyer un flux d'octets via Bluetooth entre les appareils J2ME.
Si l'installation d'une application sur les deux appareils est acceptable, j'ai des exemples de codes pour créer un serveur Bluetooth et un client pour communiquer entre eux via la prise, une fois la prise établie, vous pouvez vous envoyer un flux audio :)
voici quelques codes de base:
1) périphérique serveur:
// 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);
vous avez maintenant le serverSocket, utilisez-le simplement comme un ServerSocket ordinaire:
BluetoothSocket socket = serverSocket.accept();
puis vous pouvez obtenir InputStream
et OutputStream
à partir de ce BluetoothSocket
et envoyer un flux audio comme HttpConnection
2) appareil client:
supposons que vous avez déjà obtenu le BluetoothDevice
// you should implement the method getBlutoothDevice
BluetoothDevice device = getBluetoothDevice();
BluetoothSocket socket = device.createRfcommSocketToServiceRecord(MY_UUID_SECURE);
Vous pouvez également diffuser de l'audio sur une connexion de base SCO qui ne dépend d'aucun profil. Cependant, sachez que A2DP est un profil qui a été développé spécifiquement pour diffuser de la musique. Donc, toute implémentation que vous faites vous souffrirez en qualité par rapport à A2DP.
À moins que vous ne diffusiez de la musique sur un appareil qui ne prend pas en charge A2DP, j'utiliserais certainement A2DP. Vraiment, votre seule autre option est d'utiliser un lien SCO.