How is audio transmitted with wireless Carplay?

I have a 2019 BMW X2 with Carplay. The audio quality is noticeably worse with Carplay than through USB or even Bluetooth.

Carplay apparently transmits the audio via a wi-fi connection the phone makes with the car's head unit. It's higher bandwidth than Bluetooth, so Apple claims it can transmit lossless audio without recompression to the head unit. But it doesn't sound that way. (I watched a WWDC developer video from Apple that explained this)

I've played music through Tidal & Apple Music. They both sound the same through Carplay. Thin, lacks clarity. Doesn't really sound like mp3/aac compression though.

Does anyone know what codec/protocol is used to trasmit audio to the head unit? Anyone else experience this? I want to know whether this is a problem with Carplay or just the head unit's implementation of it.


Solution 1:

Apple’s consumer documentation says you need a unit with Bluetooth or WiFi for wireless and I expect it uses both when paired and available. You’d need to measure the RF to tell which is being used from moment to moment or check console logs for any debug messages.

  • https://support.apple.com/en-us/HT205634

A slightly longer answer is that the technical details are not public and neither is the API / SDK other than this technical detail that explains the app simply hands off the media container or media with title, streaming Boolean, artwork and percentage played...

  • https://developer.apple.com/documentation/mediaplayer/mpcontentitem

The details on the SDK are shared with MFI partners.

  • https://stackoverflow.com/questions/22372095/is-ios-carplay-api-public-how-to-integrate-carplay/38541642#38541642

As a developer, you don’t need to be MFI, just hand off your media to the player and it will play through. As a user, you can control what media you ask to play but probably not affect the delivery process in any meaningful way other than choosing your source media to be of a quality you expect to hear.