AVRCP Plugin

The mm-player service uses the AVRCP (Audio/Video Remote Control Profile) plugin to browse and play media files stored on devices accessed over a Bluetooth connection.

Figure 1. AVRCP Plugin Architecture

The AVRCP plugin communicates with the io-bluetooth service (through standard file I/O calls) to browse media content on Bluetooth-connected devices. Media information from Bluetooth devices arrives over a radio connection. A Bluetooth device driver (not shown in Figure 1) passes this information to io-bluetooth. The plugin can then retrieve all device information—position data, connectivity state, and media file metadata—through io-bluetooth. To send this information to the HMI, mm-player uses the car.mediaplayer WebWorks extension (for more information, see the multimedia architecture overview in the QNX CAR Multimedia Architecture Guide).

When the user starts playing a media file accessible through Bluetooth, the AVRCP plugin sends playback commands to io-bluetooth and mm-renderer through their C APIs. The io-bluetooth service initiates the media stream on the Bluetooth-connected device and directs that stream to mm-renderer as input. The mm-renderer service then sends the stream to io-audio for output.