You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 18 Next »


Every API  maps one on one to a public method on the PlayerInstanceAAMP class declared in main_aamp.h in Aamp source code.


JSON-RPC method
Aamp Player Instance Method
Parameter
Result
Summary
Jsonrpc Request example
Jsonrpc response example
org.rdk.player.openSession

sessionId: stringappName : stringtraceUUID : string
sessionId : stringsuccess : boolean
Open a new player session
{

  "jsonrpc": "2.0",

  "id": 1,

  "method": "org.rdk.player.openSession",

  "params": {

    "sessionId": "sess-abc-001",

    "appName": "MyStreamingApp",

    "traceUUID": "550e8400-e29b-41d4-a716-446655440000"

  }

}
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "sessionId": "sess-abc-001",
    "success": true
  }
}
org.rdk.player.configureSession

sessionId : stringconfig : object
sessionId : stringsuccess : boolean
Apply configuration to an open session
{

  "jsonrpc": "2.0",

  "id": 2,

  "method": "org.rdk.player.configureSession",

  "params": {

    "sessionId": "sess-abc-001",

    "config": {

      "networkTimeout": 10,

      "downloadBuffer": 30,

      "preferredDRM": "widevine",

      "initialBitrate": 2000000

    }

  }

}
{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "sessionId": "sess-abc-001",
    "success": true
  }
}
org.dk.player.closeSession

sessionId : stringsuccess : boolean
sessionId: Stringsuccess : boolean
Close and release a player session
{

  "jsonrpc": "2.0",

  "id": 3,

  "method": "org.rdk.player.closeSession",

  "params": {

    "sessionId": "sess-abc-001"

  }

}
{
  "jsonrpc": "2.0",
  "id": 3,
  "result": {
    "sessionId": "sess-abc-001",
    "success": true
  }
}
org.rdk.player.tune
Tune
url : StringautoPlay : booleancontentType : StringtraceUUID : String
success : boolean
Instructs the AAMP  to tune to the given URL.
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.tune","params":{"url":"https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd","autoPlay":true,"contentType":"VOD"}}

{"jsonrpc":"2.0","id":4,"result":{"success":true}}

org.rdk.player.stop
Stop
None
success :boolean
Stops the current playback and releases decoder resources. The player returns to the idle state.
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.stop"}

{"jsonrpc":"2.0","id":5,"result":{"success":true}}

org.rdk.player.seek
Seek
position : numberkeepPaused : boolean
success : boolean
Seeks to an absolute position in the stream
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.seek","params":{"position":120.0,"keepPaused":false}}

{"jsonrpc":"2.0","id":5,"result":{"success":true}}

org.rdk.player.seekToLive
SeekToLive
keepPaused : boolean
success : boolean
Seek to the live edge
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.seekToLive","params":{"keepPaused":false}}
{"jsonrpc":"2.0","id":1,"result":{"success":true}}
org.rdk.player.setRate
SetRate
rate : number overshootCorrection : integer
success: boolean
Set playback rate / trick-play speed
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setRate","params":{"rate":2,"overshootCorrection":0}}
{"jsonrpc":"2.0","id":1,"result":{"success":true}}
org.rdk.player.setPlaybackSpeed
SetPlaybackSpeed
speed : number
success: boolean
Sets the playback speed directly 
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setPlaybackSpeed","params":{"speed":0.5}}
{"jsonrpc":"2.0","id":1,"result":{"success":true}}
org.rdk.player.pauseAt
PauseAt
position : number
success : boolean
Schedule a pause at a future position
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.pauseAt","params":{"position":300.0}}
{"jsonrpc":"2.0","id":1,"result":{"success":true}}
org.rdk.player.setRateAndSeek
SetRateAndSeek
rate : integer position : number
success:boolean
Atomically set rate and seek
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setRateAndSeek","params":{"rate":1,"position":60.0}}
{"jsonrpc":"2.0","id":1,"result":{"success":true}}
org.rdk.player.getState
GetState
None
state : PlayerState
Get current player state
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getState"}
{"jsonrpc":"2.0","id":1,"result":{"state":"playing"}}
org.rdk.player.getPlaybackPosition
GetPlaybackPosition
None
position : Number
Get current playback position
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getPlaybackPosition"}
{"jsonrpc":"2.0","id":1,"result":{"position":120.5}}
org.rdk.player.getPlaybackDuration
GetPlaybackDuration
None
duration : Number
Get total stream duration
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getPlaybackDuration"}
{"jsonrpc":"2.0","id":1,"result":{"duration":3600.0}}
org.rdk.player.getPlaybackRate
GetPlaybackRate
None
rate  : Number
Get current playback rate
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getPlaybackRate"}
{"jsonrpc":"2.0","id":1,"result":{"rate":1.0}}
org.rdk.player.isLive
IsLive
None
isLive :Boolean
Check if stream is live
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.isLive"}
{"jsonrpc":"2.0","id":1,"result":{"isLive":false}}
org.rdk.player.setVideoMute
SetVideoMute
muted : boolean
success : 

Boolean
Mute or unmute the video plane
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setVideoMute","params":{"muted":true}}
{"jsonrpc":"2.0","id":1,"result":{"success":true}}
org.rdk.player.getVideoMute
GetVideoMute
None
muted : 

Boolean
Get video mute state
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getVideoMute"}
{"jsonrpc":"2.0","id":1,"result":{"muted":false}}
org.rdk.player.setAudioVolume
SetAudioVolume
volume : integer
success : 

Boolean
Set audio volume
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setAudioVolume","params":{"volume":80}}
{"jsonrpc":"2.0","id":1,"result":{"success":true}}
org.rdk.player.getAudioVolume
GetAudioVolume
None
volume : 

Integer
Get audio volume
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getAudioVolume"}
{"jsonrpc":"2.0","id":1,"result":{"volume":80}}
org.rdk.player.getAudioLanguage
GetAudioLanguage
None
language : string

{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getAudioLanguage"}
 
 
{"jsonrpc":"2.0","id":1,"result":{"language":"en"}}
org.rdk.player.getAvailableAudioTracks
GetAvailableAudioTracks
allTracks boolean
tracks :AudioTrack[]
List available audio tracks
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getAvailableAudioTracks","params":{"allTracks":false}}
 
{"jsonrpc":"2.0","id":1,"result":{"tracks":[{"index":0,"language":"en","rendition":"main","label":"English","codec":"mp4a.40.2","type":"AUDIO_STEREO","channels":2,"bitrate":128000},{"index":1,"language":"fra","rendition":"main","label":"French","codec":"mp4a.40.2","type":"AUDIO_STEREO","channels":2,"bitrate":128000}]}}
org.rdk.player.setAudioTrack
SetAudioTrack
trackId : integer
success : 

Boolean
Select an audio track by index
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setAudioTrack","params":{"trackId":1}}
 
{"jsonrpc":"2.0","id":1,"result":{"success":true}}
org.rdk.player.getAudioTrack
GetAudioTrack
None
trackId:integer
Get index of active audio track
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getAudioTrack"}
 
{"jsonrpc":"2.0","id":1,"result":{"trackId":0}}
org.rdk.player.getAudioTrackInfo
GetAudioTrackInfo
None
trackInfo:AudioTrack
Get details of active audio track
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getAudioTrackInfo"}
 
{"jsonrpc":"2.0","id":1,"result":{"trackInfo":{"index":0,"language":"en","rendition":"main","label":"English","codec":"mp4a.40.2","type":"AUDIO_STEREO","channels":2,"bitrate":128000}}}
org.rdk.player.setSubtitleMute
SetSubtitleMute
muted: boolean
success: boolean
Mute or unmute subtitles
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setSubtitleMute","params":{"muted":true}}
 
{"jsonrpc":"2.0","id":1,"result":{"success":true}}
org.rdk.player.getAvailableTextTracks
GetAvailableTextTracks
allTracks : boolean

 
tracks : 

TextTrack[]
List available text/subtitle tracks
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getAvailableTextTracks","params":{"allTracks":false}}
 
{"jsonrpc":"2.0","id":1,"result":{"tracks":[{"index":0,"language":"en","rendition":"main","label":"English","type":"SUBTITLES"},{"index":1,"language":"spa","rendition":"main","label":"Spanish","type":"SUBTITLES"}]}}
org.rdk.player.setTextTrack
SetTextTrack
trackId : integer
success : boolean
Select a text track by index
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setTextTrack","params":{"trackId":0}}
 
{"jsonrpc":"2.0","id":1,"result":{"success":true}}
org.rdk.player.getTextTrack
GetTextTrack
None
trackId : integer
Get index of active text track
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getTextTrack"}
 
{"jsonrpc":"2.0","id":1,"result":{"trackId":0}}
org.rdk.player.getVideoBitrate
GetVideoBitrate
None
bitrate : integer 
Get current video bitrate
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getVideoBitrate"}
 
{"jsonrpc":"2.0","id":1,"result":{"bitrate":4000000}}
org.rdk.player.setVideoBitrate
SetVideoBitrate
bitrate : integer
success : boolean
Lock the video bitrate
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setVideoBitrate","params":{"bitrate":2000000}}
 
{"jsonrpc":"2.0","id":1,"result":{"success":true}}
org.rdk.player.getVideoBitrates
GetVideoBitrates
None 
bitrates : 

integer[]
List all available video bitrates
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getVideoBitrates"}
 
{"jsonrpc":"2.0","id":1,"result":{"bitrates":[800000,2000000,4000000,8000000]}}
org.rdk.player.setInitialBitrate
SetInitialBitrate
bitrate : integer
success  : boolean
Set the startup bitrate hint
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setInitialBitrate","params":{"bitrate":2000000}}
 
{"jsonrpc":"2.0","id":1,"result":{"success":true}}
org.rdk.player.getInitialBitrate
getInitialBitrat
 

None
bitrate : integer 
Set the startup bitrate hint
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getInitialBitrate"}
 
{"jsonrpc":"2.0","id":1,"result":{"bitrate":2000000}}
org.rdk.player.setMinimumBitrate
SetMinimumBitrate
bitrate : integer 
success : boolean
Set the ABR minimum bitrate floor
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setMinimumBitrate","params":{"bitrate":800000}}
 
{"jsonrpc":"2.0","id":1,"result":{"success":true}}
org.rdk.player.getMinimumBitrate
GetMinimumBitrate
None
bitrate : integer 
Get the ABR minimum bitrate floor 
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getMinimumBitrate"}
 
{"jsonrpc":"2.0","id":1,"result":{"bitrate":800000}}
org.rdk.player.setMaximumBitrate
SetMaximumBitrate
bitrate : integer
success : boolean
Set the ABR maximum bitrate ceiling
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setMaximumBitrate","params":{"bitrate":8000000}}
{"jsonrpc":"2.0","id":1,"result":{"success":true}}
 
org.rdk.player.getMaximumBitrate
getMaximumBitrate
None
bitrate : integer 
Get the ABR maximum bitrate ceiling
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getMaximumBitrate"}
 

{"jsonrpc":"2.0","id":1,"result":{"bitrate":8000000}}
rg.rdk.player.setLicenseServerURL
SetLicenseServerURL
url : 

string
success : boolean 
Set the DRM license server URL
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setLicenseServerURL","params":{"url":"https://license.example.com/widevine"}}
 
{"jsonrpc":"2.0","id":1,"result":{"success":true}}
org.rdk.player.getDRM
GetDRM
None
drm : string 
Get active DRM system
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getDRM"}
 
{"jsonrpc":"2.0","id":1,"result":{"drm":"widevine"}}
org.rdk.player.setPreferredDRM
SetPreferredDRM
drmType : string

 
success : boolean
Set the preferred DRM system
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setPreferredDRM","params":{"drmType":"widevine"}}
 
{"jsonrpc":"2.0","id":1,"result":{"success":true}}
rg.rdk.player.getAAMPConfig
GetAAMPConfig
None
config : object
Get current AAMP configuration
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getAAMPConfig"}
 
{"jsonrpc":"2.0","id":1,"result":{"config":{"networkTimeout":10,"downloadBuffer":30}}}
org.rdk.player.setAppName
SetAppName
name : string

 
success : boolean
Set the application name
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setAppName","params":{"name":"MyStreamingApp"}}
 
{"jsonrpc":"2.0","id":1,"result":{"success":true}}
org.rdk.player.setPreferredLanguages
SetPreferredLanguages
languageList  : string

rendition : string

codecList : string

labelList : string
success : boolean
Set preferred audio/text language preferences
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setPreferredLanguages","params":{"languageList":"en,fra,spa","rendition":"main","type":"AUDIO_STEREO","codecList":"mp4a.40.2"}}
 
{"jsonrpc":"2.0","id":1,"result":{"success":true}}
org.rdk.player.getPreferredLanguages
GetPreferredLanguages
None

 
languageList : sting

 
Get the preferred language list
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getPreferredLanguages"}
 
{"jsonrpc":"2.0","id":1,"result":{"languageList":"en,fra"}}
Events and Notifications

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:

Request
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.subscribe","params":{"event":"org.rdk.player.onProgress"}}

Response
{"jsonrpc":"2.0","id":1,"result":{"success":true}}

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}}
org.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"}}
org.rdk.player.onAdReservationStart
Ad reservation start event
{"jsonrpc":"2.0","method":"org.rdk.player.onAdReservationStart","params":{"adBreakId":"break-001","position":120000}}
org.rdk.player.onTimedMetadata



{"jsonrpc":"2.0","method":"org.rdk.player.onTimedMetadata","params":{"name":"#EXT-X-CUE","id":"cue-001","timeMilliseconds":5000,"durationMilliSeconds":30000,"content":"/DAlAAAAAA=="}}
org.rdk.player.onBulkTimedMetadata



{"jsonrpc":"2.0","method":"org.rdk.player.onBulkTimedMetadata","params":{"metadata":"[{\"name\":\"#EXT-X-CUE\",\"time\":5000}]"}}
org.rdk.player.onSupportedSpeedsChanged



{"jsonrpc":"2.0","method":"org.rdk.player.onSupportedSpeedsChanged","params":{"supportedSpeedCount":13,"supportedSpeeds":[-64,-32,-16,-8,-4,-2,1,2,4,8,16,32,64]}}
org.rdk.player.onAdResolved



{"jsonrpc":"2.0","method":"org.rdk.player.onAdResolved","params":{"resolveStatus":true,"adId":"ad-001","startMS":60000,"durationMs":30000,"errorCode":"","errorDescription":""}}
org.rdk.player.onAdPlacementStart


Ad placement started
{"jsonrpc":"2.0","method":"org.rdk.player.onAdPlacementStart","params":{"adId":"ad-001","position":60000,"offset":0,"duration":30000,"errorCode":0}}
org.rdk.player.onAdPlacementEnd


Ad placement ended

org.rdk.player.onAdPlacementError


Ad placement error

org.rdk.player.onAdPlacementProgress


Ad placement progress update

org.rdk.player.onID3Metadata


 ID3 tag metadata extracted from stream
{"jsonrpc":"2.0","method":"org.rdk.player.onID3Metadata","params":{"data":"SUQzBAAAAAAAI1RTUFQ=","length":20}}
org.rdk.player.onDrmMessage


DRM system message received
{"jsonrpc":"2.0","method":"org.rdk.player.onDrmMessage","params":{"data":"license renewal required"}}
org.rdk.player.onContentGap


Content gap detected in stream
{"jsonrpc":"2.0","method":"org.rdk.player.onContentGap","params":{"timeMilliseconds":120000,"durationMilliSeconds":5000}}
org.rdk.player.onHTTPResponseHeader


Matched HTTP response header received
{"jsonrpc":"2.0","method":"org.rdk.player.onHTTPResponseHeader","params":{"header":"X-CDN-Provider","response":"Akamai"}}
org.rdk.player.onContentProtectionDataUpdate


Content protection key data updated
{"jsonrpc":"2.0","method":"org.rdk.player.onContentProtectionDataUpdate","params":{"keyID":"AAECBA==","streamType":"video"}}
org.rdk.player.onTuneTimeMetrics



{"jsonrpc":"2.0","method":"org.rdk.player.onTuneTimeMetrics","params":{"tuneMetricData":"{\"latency\":1500,\"fragmentDownloadTime\":200}"}}


org.rdk.player.onMonitorAVStatus



{"jsonrpc":"2.0","method":"org.rdk.player.onMonitorAVStatus","params":{"monitorAVStatus":"playing","videoPositionMS":12500,"audioPositionMS":12490,"timeInStateMS":5000,"droppedFrames":0}}


org.rdk.player.onMetricsData



{"jsonrpc":"2.0","method":"org.rdk.player.onMetricsData","params":{"type":1,"metricUUID":"550e8400-e29b-41d4-a716-446655440000","data":"{\"latency\":1200}"}}
org.rdk.player.onCCHandleReceived

{"jsonrpc":"2.0","method":"org.rdk.player.onCCHandleReceived","params":{"handle":12345}}








  • No labels