2013-12-05 24 views
17

BlueZ ha un sacco di documentazioni e tutto. E dallo stesso, ho capito che BlueZ supporta il supporto del sink A2DP. E allo stesso tempo un dispositivo Android può fungere da sink A2DP modificando il file audio.conf all'interno dello stesso.BlueZ vs Bluedroid stack bluetooth

Sono anche venuto a sapere che da Android 4.2 in poi, lo stack BlueZ è stato sostituito dallo stack Bluedroid di Broadcom. Ho cercato molto su stack Bluedroid. Ma non ero in grado di trovare molti dettagli sullo stesso.

Spero che qualcuno possa aiutarmi con i seguenti dubbi.

1). Se Bluedroid abbia il supporto per il sink A2DP?

2). Se il file audio.conf sarà disponibile per i dispositivi con stack bluedroidico?

3). Sto andando a scrivere un supporto sink A2DP per un dispositivo Android chiamando direttamente le API dello stack BlueZ. Ma la mia ultima domanda è se lo stesso può essere usato anche con lo stack Bluedroid? Spero che Bluedroid sia solo un'espansione di BlueZ.

Per favore aiuto.

risposta

13

Bluedroid è uno stack fornito da Broadcom ed è ora opensource in Android. Bluedroid non ha nulla a che vedere con bluez, ha alcuni vantaggi rispetto a bluez (io sono diverso da quello).

[1]. Bluedroid non ha un supporto sink a2dp sin da ora, come da codice disponibile source code è disponibile solo il supporto sorgente a2dp

[2]. Il file Audio.conf è per stack bluez, non è una parte di bluedroid

[3]. Chiamando direttamente l'API Bluez - penso che userete le chiamate dbus ma bluedroid non supporta le chiamate al metodo dbus, ha un meccanismo di callback implementato, quindi non funzionerà, bluedroid non è un'espansione di bluez.

+1

Questa è stata una delle migliori risposte che abbia mai avuto. Grazie mille. Ho risolto tutte le mie confusioni :) –

+0

Voglio sapere un'altra cosa. Da 4.3 Android in poi, l'intero stack BlueZ viene sostituito dallo stack Bluedroid? o entrambi sono integrati in tale modo per supportare la retrocompatibilità. Non so se la domanda è significativa in alcun senso. Ma voglio solo confermarlo, per andare avanti con la mia ricerca sullo stesso :) –

+0

Penso che se un venditore vuole ancora usare bluez, può farlo con i cambiamenti di configurazione in build Android, tuttavia non sono chiaro su quello – ashish

3

Il ruolo di sink A2DP è ora supportato in Android Lollipop (5.0). Hanno modificato il codice sorgente Bluedroid per supportare lo stesso. Per supportarlo completamente, è necessario modificare l'audio HAL (audio.h), AudioPolicyManagerBase.cpp e audio_policy.conf e anche Audio Manager, A2DPStateMachine ecc.

+0

potresti indicare qualsiasi guida su come supportare completamente il ruolo di sink di 'A2DP'? – tchelidze

2

Come detto dall'utente987500, il sink A2DP è supportato in Android L, solo apportare modifiche minori, il dispositivo può essere modificato da A2DP src a sink. Ma assicurati che un solo ruolo possa essere supportato per un dispositivo, che può essere configurato dal file xml.

+0

** esegui solo modifiche minori ** potresti essere più specifico a riguardo? – tchelidze

0

Aggiungendo alle risposte precedenti, poiché Android L, è stato introdotto il supporto sink, ma la porzione di codice Streaming audio non è stata completata. Tuttavia, ho trovato this lista cambiamento in cui realizzazione A2DP lavello è completata e dei media può essere giocato attraverso il dispositivo lavandino come menzionato nel messaggio di commit della lista cambiamento:

Bluetooth A2DP Sink

La modifica implementa la funzionalità di sink A2DP. Se il dispositivo Android è un ruolo sink, può ricevere musica dal telefono tramite BT. Questa funzione può essere applicata a in kit per auto multimediali, set-top box e HiFi famiglia. Set BLUETOOTH_A2DP_SINK: = true in BoardConfig.mk per abilitare il sink A2DP in bluedroid.

Sono inoltre necessarie le modifiche di seguito nel framework per indirizzare la musica all'altoparlante . https://android-review.googlesource.com/#/c/97832/ https://android-review.googlesource.com/#/c/97853/ https://android-review.googlesource.com/#/c/97833/ https://android-review.googlesource.com/#/c/98130/ https://android-review.googlesource.com/#/c/98131/

Questo cambiamento non include SBC decoder. È possibile ottenere un decodificatore SBC da github.com/tieto/sbc-decoder.

Tutto il meglio !!!

+0

andando più lontano, il problema è che [questa patch] (https://android-review.googlesource.com/#/c/98161/) si applica a 'andoroid 4.4. *'. Le modifiche alla patch sono già (* probabilmente parzialmente *) applicate in Android L – tchelidze