录音录像与媒体播放:完整报文
约 1346 字大约 4 分钟
2026-10-16
本页是场景流程的完整 JSON 序列,按图中编号查阅。示例中的分支互斥,不能顺序重放全部报文;实际 ID、截止、SDP、地址和密钥须由运行时取得。实施状态及字段定义仍以场景与命令页为准。
编号报文
M01 · recordingControl
{
"msgToken": "s15-35",
"method": "recordingControl",
"sessionId": "s15-session",
"params": {
"operation": "start",
"expectedRevision": 0,
"recordingId": "rec-1",
"sourceTrackIds": [
"mic-a",
"mic-b"
],
"consentIds": [
"consent-a",
"consent-b"
],
"policyId": "retention-policy"
}
}M02 · recordingState
{
"msgToken": "s15-35",
"method": "recordingState",
"sessionId": "s15-session",
"data": {
"state": "starting",
"revision": 1,
"recordingId": "rec-1"
},
"code": 200
}M03 · recordingState
{
"msgToken": "s15-36",
"method": "recordingState",
"sessionId": "s15-session",
"data": {
"state": "active",
"revision": 2,
"recordingId": "rec-1",
"requestToken": "s15-35"
},
"eventSeq": 1
}M04 · recordingControl
{
"msgToken": "s15-37",
"method": "recordingControl",
"sessionId": "s15-session",
"params": {
"operation": "pause",
"expectedRevision": 2,
"recordingId": "rec-1"
}
}M05 · recordingState
{
"msgToken": "s15-37",
"method": "recordingState",
"sessionId": "s15-session",
"data": {
"state": "paused",
"revision": 3,
"recordingId": "rec-1"
},
"code": 200
}M06 · recordingControl
{
"msgToken": "s15-38",
"method": "recordingControl",
"sessionId": "s15-session",
"params": {
"operation": "resume",
"expectedRevision": 3,
"recordingId": "rec-1",
"consentIds": [
"consent-a",
"consent-b"
]
}
}M07 · recordingState
{
"msgToken": "s15-38",
"method": "recordingState",
"sessionId": "s15-session",
"data": {
"state": "active",
"revision": 4,
"recordingId": "rec-1"
},
"code": 200
}M08 · recordingControl
{
"msgToken": "s15-39",
"method": "recordingControl",
"sessionId": "s15-session",
"params": {
"operation": "stop",
"expectedRevision": 4,
"recordingId": "rec-1"
}
}M09 · recordingState
{
"msgToken": "s15-39",
"method": "recordingState",
"sessionId": "s15-session",
"data": {
"state": "finalizing",
"revision": 5,
"recordingId": "rec-1"
},
"code": 200
}M10 · recordingState
{
"msgToken": "s15-40",
"method": "recordingState",
"sessionId": "s15-session",
"data": {
"state": "ready",
"revision": 6,
"recordingId": "rec-1",
"contentRef": "<authorized-recording>",
"durationMs": 30000
},
"eventSeq": 2
}M11 · interaction.controlState
{
"msgToken": "recording-ready-app",
"method": "interaction.controlState",
"sessionId": "s15-session",
"eventSeq": 3,
"data": {
"command": "recordingState",
"result": {
"state": "ready",
"revision": 6,
"recordingId": "rec-1",
"contentRef": "<authorized-recording>",
"durationMs": 30000
}
}
}M12 · recordingState
{
"msgToken": "s15-41",
"method": "recordingState",
"sessionId": "s15-session",
"data": {
"state": "failed",
"revision": 2,
"recordingId": "rec-1",
"reason": "recordingConsentMissing"
},
"eventSeq": 4
}M13 · interaction.control
{
"msgToken": "s15-42",
"method": "interaction.control",
"sessionId": "s-player",
"params": {
"command": "playbackControl",
"arguments": {
"operation": "load",
"expectedRevision": 0,
"playbackId": "player-1",
"contentRef": "<authorized-recording>"
}
}
}M14 · playbackControl
{
"msgToken": "s15-43",
"method": "playbackControl",
"sessionId": "s-player",
"params": {
"operation": "load",
"expectedRevision": 0,
"playbackId": "player-1",
"contentRef": "<authorized-recording>"
},
"eventSeq": 1
}M15 · playbackState
{
"msgToken": "s15-43",
"method": "playbackState",
"sessionId": "s-player",
"data": {
"state": "loaded",
"revision": 1,
"playbackId": "player-1",
"positionMs": 0,
"rate": 1,
"durationMs": 30000
},
"code": 200
}M16 · interaction.result
{
"msgToken": "s15-42",
"method": "interaction.result",
"sessionId": "s-player",
"data": {
"operation": "interaction.control",
"state": "applied",
"result": {
"state": "loaded",
"revision": 1,
"playbackId": "player-1",
"positionMs": 0,
"rate": 1
}
},
"code": 200
}M17 · playbackControl
{
"msgToken": "s15-44",
"method": "playbackControl",
"sessionId": "s-player",
"params": {
"operation": "play",
"expectedRevision": 1,
"playbackId": "player-1"
},
"eventSeq": 2
}M18 · playbackState
{
"msgToken": "s15-44",
"method": "playbackState",
"sessionId": "s-player",
"data": {
"state": "playing",
"revision": 2,
"playbackId": "player-1",
"positionMs": 0,
"rate": 1
},
"code": 200
}M19 · playbackControl
{
"msgToken": "s15-45",
"method": "playbackControl",
"sessionId": "s-player",
"params": {
"operation": "pause",
"expectedRevision": 2,
"playbackId": "player-1"
},
"eventSeq": 3
}M20 · playbackState
{
"msgToken": "s15-45",
"method": "playbackState",
"sessionId": "s-player",
"data": {
"state": "paused",
"revision": 3,
"playbackId": "player-1",
"positionMs": 0,
"rate": 1
},
"code": 200
}M21 · playbackControl
{
"msgToken": "s15-46",
"method": "playbackControl",
"sessionId": "s-player",
"params": {
"operation": "seek",
"expectedRevision": 3,
"playbackId": "player-1",
"positionMs": 10000
},
"eventSeq": 4
}M22 · playbackState
{
"msgToken": "s15-46",
"method": "playbackState",
"sessionId": "s-player",
"data": {
"state": "paused",
"revision": 4,
"playbackId": "player-1",
"positionMs": 9800,
"rate": 1
},
"code": 200
}M23 · playbackControl
{
"msgToken": "s15-47",
"method": "playbackControl",
"sessionId": "s-player",
"params": {
"operation": "setRate",
"expectedRevision": 4,
"playbackId": "player-1",
"rate": 1.5
},
"eventSeq": 5
}M24 · playbackState
{
"msgToken": "s15-47",
"method": "playbackState",
"sessionId": "s-player",
"data": {
"state": "paused",
"revision": 5,
"playbackId": "player-1",
"positionMs": 9800,
"rate": 1.5
},
"code": 200
}M25 · playbackControl
{
"msgToken": "s15-48",
"method": "playbackControl",
"sessionId": "s-player",
"params": {
"operation": "play",
"expectedRevision": 5,
"playbackId": "player-1"
},
"eventSeq": 6
}M26 · playbackState
{
"msgToken": "s15-48",
"method": "playbackState",
"sessionId": "s-player",
"data": {
"state": "playing",
"revision": 6,
"playbackId": "player-1",
"positionMs": 9800,
"rate": 1.5
},
"code": 200
}M27 · playbackState
{
"msgToken": "s15-49",
"method": "playbackState",
"sessionId": "s-player",
"data": {
"state": "ended",
"revision": 7,
"playbackId": "player-1",
"positionMs": 30000,
"rate": 1.5,
"durationMs": 30000
}
}M28 · sessionEnd
{
"msgToken": "s15-50",
"method": "sessionEnd",
"sessionId": "s-player",
"params": {
"reason": "userHangup"
}
}M29 · sessionEnded
{
"msgToken": "s15-50",
"method": "sessionEnded",
"sessionId": "s-player",
"data": {
"state": "ended",
"reason": "userHangup"
},
"code": 200
}M30 · playbackControl
{
"msgToken": "s15-extra-29",
"method": "playbackControl",
"sessionId": "s15-another-player",
"params": {
"operation": "stop",
"expectedRevision": 0,
"playbackId": "player-stop"
},
"eventSeq": 1
}M31 · playbackState
{
"msgToken": "s15-extra-29",
"method": "playbackState",
"sessionId": "s15-another-player",
"code": 200,
"data": {
"state": "stopped",
"revision": 1,
"playbackId": "player-stop",
"positionMs": 2000,
"rate": 1
}
}补充示例 32
{"msgToken":"s15-file-terminal","method":"sessionEnded","sessionId":"s15-file-child","eventSeq":9,"data":{"state":"ended","reason":"parentEnded"}}补充示例 33
{"msgToken":"s15-file-terminal","method":"playbackState","sessionId":"s15-file-child","data":{"playbackId":"player-1","released":true,"endEventSeq":9}}更新日志
2026/10/17 03:27
查看所有更新日志
d04e1-docs(AI与音视频): 按公共主线与场景分支整合接入手册于
