...
Subscription
All `org.rdk.player.on*` notifications are opt-in. Subscribe per client; each connection has its own independent subscription set.
After subscribing, the server pushes matching events as JSON-RPC notifications.
eg:
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.subscribe","params":{"event":"org.rdk.player.onProgress"}}
Unsubscribe
eg:
Request
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.unsubscribe","params":{"event":"org.rdk.player.onProgress"}}
Response
{"jsonrpc":"2.0","id":1,"result":{"success":true}}
| Event | Description | Response |
|---|
org.rdk.player.onTuned | Tune succeeded and playback is ready | {"jsonrpc":"2.0","method":"org.rdk.player.onTuned","params":{}} |
org.rdk.player.onTuneFailed | Tune failed and playback is not ready | {"jsonrpc":"2.0","method":"org.rdk.player.onTuneFailed","params":{"description":"Manifest download failed","code":10,"shouldRetry":true}} |
org.rdk.player.onStateChanged | New player lifecycle state | {"jsonrpc":"2.0","method":"org.rdk.player.onStateChanged","params":{"state":"playing"}} |
org.rdk.player.onProgress | Periodic playback progress | {"jsonrpc":"2.0","method":"org.rdk.player.onProgress","params":{"positionMs":12500,"durationMs":3600000,"speed":1,"startMs":0,"endMs":3600000,"videoBufferedMs":8000,"audioBufferedMs":8000,"liveLatencyMs":0,"profileBitrate":4000000,"networkBitrate":6000000}} |
rgorg.rdk.player.onBitrateChanged | ABR switches to a different video profile | {"jsonrpc":"2.0","method":"org.rdk.player.onBitrateChanged","params":{"bitrate":2000000,"width":1280,"height":720,"description":"NetworkCongestion"}} |
org.rdk.player.onMediaMetadata | Stream metadata is parsed after a tune completes | {"jsonrpc":"2.0","method":"org.rdk.player.onMediaMetadata","params":{"durationMs":3600000,"width":1920,"height":1080,"hasDrm":true,"isLive":false,"drmType":"widevine","languages":["en","fra"],"bitrates":[800000,2000000,4000000,8000000],"speeds":[-64,-32,-16,-8,-4,-2,1,2,4,8,16,32,64]}} |
org.rdk.player.onSpeedChanged | Effective playback speed changes (e.g. trick-play, pause, resume) | {"jsonrpc":"2.0","method":"org.rdk.player.onSpeedChanged","params":{"speed":2}} |
org.rdk.player.onBufferingChanged | Player enters or exits a buffering stall | {"jsonrpc":"2.0","method":"org.rdk.player.onBufferingChanged","params":{"buffering":true}} |
org.rdk.player.onSeeked | A seek operation completes and playback resumes at the new position | {"jsonrpc":"2.0","method":"org.rdk.player.onSeeked","params":{"positionMs":120000}} |
org.rdk.player.onDrmMetadata | DRM system reports an access status update | {"jsonrpc":"2.0","method":"org.rdk.player.onDrmMetadata","params":{"accessStatus":"Authorized"}} |
org.rdk.player.onAnomaly | Fired when AAMP raises an internal diagnostic report | {"jsonrpc":"2.0","method":"org.rdk.player.onAnomaly","params":{"severity":1,"message":"Segment download stalled; retrying"}} |