Getting started with CMCD on Android
Media player clients can transmit useful information to Content Delivery Networks (CDNs) with each object request. This implementation supports Common Media Client Data (CMCD) as defined in CTA-5004, published in September 2020.
Usage
To enable CMCD, developers can add a CMCDTransmissionMode inside a SourceDescription.
val typedSource = TypedSource.Builder("<HLS_STREAM_URL>")
.cmcdTransmissionMode(CMCDTransmissionMode.HTTP_HEADER)
.build()
val sourceDescription = SourceDescription.Builder(typedSource)
.build()
theoPlayerView.player.source = sourceDescription
The preferred mode of transmission for HTTP requests is to use custom headers, but you can configure the transmission mode when creating the CMCD source. For example, to transmit via query arguments:
val typedSource = TypedSource.Builder("<HLS_STREAM_URL>")
.cmcdTransmissionMode(CMCDTransmissionMode.QUERY_ARGUMENT)
.build()
val sourceDescription = SourceDescription.Builder(typedSource)
.build()
theoPlayerView.player.source = sourceDescription
Remarks
Note that CMCD is only supported with the Media3 integration.