视频升级摄像头切换与屏幕共享:完整报文
约 1712 字大约 6 分钟
2026-10-16
本页是场景流程的完整 JSON 序列,按图中编号查阅。示例中的分支互斥,不能顺序重放全部报文;实际 ID、截止、SDP、地址和密钥须由运行时取得。实施状态及字段定义仍以场景与命令页为准。
编号报文
M01 · mediaUpdate
{
"msgToken": "s14-20",
"method": "mediaUpdate",
"sessionId": "s14-session",
"params": {
"operation": "add",
"expectedRevision": 0,
"tracks": [
{
"trackId": "video-new",
"kind": "video",
"sourceId": "front",
"sourceType": "camera",
"direction": "sendonly",
"codec": "H264",
"state": "requested"
}
],
"consentIds": [
"camera-consent",
"peer-video-consent"
]
}
}M02 · mediaUpdated
{
"msgToken": "s14-20",
"method": "mediaUpdated",
"sessionId": "s14-session",
"data": {
"state": "pending",
"revision": 1,
"mediaRevision": 2,
"tracks": [
{
"trackId": "video-new",
"kind": "video",
"sourceId": "front",
"sourceType": "camera",
"direction": "sendonly",
"codec": "H264",
"state": "requested"
}
],
"requestToken": "s14-20"
},
"code": 200
}M03 · mediaOffer
{
"msgToken": "s14-21",
"method": "mediaOffer",
"sessionId": "s14-session",
"params": {
"mediaRevision": 2,
"webrtc": {
"iceMode": "complete",
"sdp": "<SDP offer>"
}
}
}M04 · mediaAnswer
{
"msgToken": "s14-21",
"method": "mediaAnswer",
"sessionId": "s14-session",
"data": {
"mediaRevision": 2,
"webrtc": {
"iceMode": "complete",
"sdp": "<SDP answer>"
}
},
"code": 200
}M05 · mediaState
{
"msgToken": "s14-22",
"method": "mediaState",
"sessionId": "s14-session",
"params": {
"mediaRevision": 2,
"state": "connected"
}
}M06 · requestAck
{
"msgToken": "s14-22",
"method": "requestAck",
"sessionId": "s14-session",
"data": {
"requestMethod": "mediaState",
"result": {
"mediaRevision": 2,
"state": "connected"
}
},
"code": 200
}M34 · trackState
{
"msgToken": "s14-observed-video-new-2",
"method": "trackState",
"sessionId": "s14-session",
"data": {
"trackId": "video-new",
"state": "active",
"mediaRevision": 2
}
}M07 · mediaUpdated
{
"msgToken": "s14-23",
"method": "mediaUpdated",
"sessionId": "s14-session",
"data": {
"state": "applied",
"revision": 1,
"mediaRevision": 2,
"tracks": [
{
"trackId": "video-new",
"kind": "video",
"sourceId": "front",
"sourceType": "camera",
"direction": "sendonly",
"codec": "H264",
"state": "active"
}
],
"requestToken": "s14-20"
},
"eventSeq": 1
}M08 · mediaUpdated
{
"msgToken": "s14-24",
"method": "mediaUpdated",
"sessionId": "s14-session",
"data": {
"state": "failed",
"revision": 1,
"reason": "videoConsentDenied",
"requestToken": "s14-20"
},
"eventSeq": 2
}M09 · mediaUpdate
{
"msgToken": "s14-25",
"method": "mediaUpdate",
"sessionId": "s14-session",
"params": {
"operation": "replace",
"expectedRevision": 1,
"trackIds": [
"video-new"
],
"tracks": [
{
"trackId": "video-rear",
"kind": "video",
"sourceId": "rear",
"sourceType": "camera",
"direction": "sendonly",
"codec": "H264",
"state": "requested"
}
],
"consentIds": [
"rear-consent"
]
}
}M10 · mediaUpdated
{
"msgToken": "s14-25",
"method": "mediaUpdated",
"sessionId": "s14-session",
"data": {
"state": "pending",
"revision": 2,
"mediaRevision": 3,
"tracks": [
{
"trackId": "video-rear",
"kind": "video",
"sourceId": "rear",
"sourceType": "camera",
"direction": "sendonly",
"codec": "H264",
"state": "requested"
}
],
"requestToken": "s14-25"
},
"code": 200
}M11 · mediaOffer
{
"msgToken": "s14-26",
"method": "mediaOffer",
"sessionId": "s14-session",
"params": {
"mediaRevision": 3,
"webrtc": {
"iceMode": "complete",
"sdp": "<SDP offer>"
}
}
}M12 · mediaAnswer
{
"msgToken": "s14-26",
"method": "mediaAnswer",
"sessionId": "s14-session",
"data": {
"mediaRevision": 3,
"webrtc": {
"iceMode": "complete",
"sdp": "<SDP answer>"
}
},
"code": 200
}M13 · mediaState
{
"msgToken": "s14-27",
"method": "mediaState",
"sessionId": "s14-session",
"params": {
"mediaRevision": 3,
"state": "connected"
}
}M14 · requestAck
{
"msgToken": "s14-27",
"method": "requestAck",
"sessionId": "s14-session",
"data": {
"requestMethod": "mediaState",
"result": {
"mediaRevision": 3,
"state": "connected"
}
},
"code": 200
}M35 · trackState
{
"msgToken": "s14-observed-video-rear-3",
"method": "trackState",
"sessionId": "s14-session",
"data": {
"trackId": "video-rear",
"state": "active",
"mediaRevision": 3
}
}M31 · mediaUpdated
{
"method": "mediaUpdated",
"msgToken": "s14-audit-9",
"sessionId": "s14-session",
"eventSeq": 3,
"data": {
"state": "applied",
"revision": 2,
"mediaRevision": 3,
"tracks": [
{
"trackId": "video-rear",
"kind": "video",
"sourceId": "rear",
"sourceType": "camera",
"direction": "sendonly",
"codec": "H264",
"state": "active"
}
],
"requestToken": "s14-25"
}
}M15 · mediaUpdate
{
"msgToken": "s14-28",
"method": "mediaUpdate",
"sessionId": "s14-session",
"params": {
"operation": "add",
"expectedRevision": 2,
"tracks": [
{
"trackId": "screen-1",
"kind": "video",
"sourceId": "display-1",
"sourceType": "screen",
"direction": "sendonly",
"codec": "H264",
"state": "requested"
}
],
"consentIds": [
"screen-consent"
]
}
}M16 · mediaUpdated
{
"msgToken": "s14-28",
"method": "mediaUpdated",
"sessionId": "s14-session",
"data": {
"state": "pending",
"revision": 3,
"mediaRevision": 4,
"tracks": [
{
"trackId": "screen-1",
"kind": "video",
"sourceId": "display-1",
"sourceType": "screen",
"direction": "sendonly",
"codec": "H264",
"state": "requested"
}
],
"requestToken": "s14-28"
},
"code": 200
}M17 · mediaOffer
{
"msgToken": "s14-29",
"method": "mediaOffer",
"sessionId": "s14-session",
"params": {
"mediaRevision": 4,
"webrtc": {
"iceMode": "complete",
"sdp": "<SDP offer>"
}
}
}M18 · mediaAnswer
{
"msgToken": "s14-29",
"method": "mediaAnswer",
"sessionId": "s14-session",
"data": {
"mediaRevision": 4,
"webrtc": {
"iceMode": "complete",
"sdp": "<SDP answer>"
}
},
"code": 200
}M19 · mediaState
{
"msgToken": "s14-30",
"method": "mediaState",
"sessionId": "s14-session",
"params": {
"mediaRevision": 4,
"state": "connected"
}
}M20 · requestAck
{
"msgToken": "s14-30",
"method": "requestAck",
"sessionId": "s14-session",
"data": {
"requestMethod": "mediaState",
"result": {
"mediaRevision": 4,
"state": "connected"
}
},
"code": 200
}M36 · trackState
{
"msgToken": "s14-observed-screen-1-4",
"method": "trackState",
"sessionId": "s14-session",
"data": {
"trackId": "screen-1",
"state": "active",
"mediaRevision": 4
}
}M32 · mediaUpdated
{
"method": "mediaUpdated",
"msgToken": "s14-audit-10",
"sessionId": "s14-session",
"eventSeq": 4,
"data": {
"state": "applied",
"revision": 3,
"mediaRevision": 4,
"tracks": [
{
"trackId": "screen-1",
"kind": "video",
"sourceId": "display-1",
"sourceType": "screen",
"direction": "sendonly",
"codec": "H264",
"state": "active"
}
],
"requestToken": "s14-28"
}
}M21 · mediaUpdate
{
"msgToken": "s14-31",
"method": "mediaUpdate",
"sessionId": "s14-session",
"params": {
"operation": "setQuality",
"expectedRevision": 3,
"trackIds": [
"video-rear",
"screen-1"
],
"profile": "audioOnly"
}
}M22 · mediaUpdated
{
"msgToken": "s14-31",
"method": "mediaUpdated",
"sessionId": "s14-session",
"data": {
"state": "pending",
"revision": 4,
"mediaRevision": 5,
"tracks": [],
"requestToken": "s14-31"
},
"code": 200
}M23 · mediaOffer
{
"msgToken": "s14-32",
"method": "mediaOffer",
"sessionId": "s14-session",
"params": {
"mediaRevision": 5,
"webrtc": {
"iceMode": "complete",
"sdp": "<SDP offer>"
}
}
}M24 · mediaAnswer
{
"msgToken": "s14-32",
"method": "mediaAnswer",
"sessionId": "s14-session",
"data": {
"mediaRevision": 5,
"webrtc": {
"iceMode": "complete",
"sdp": "<SDP answer>"
}
},
"code": 200
}M25 · mediaState
{
"msgToken": "s14-33",
"method": "mediaState",
"sessionId": "s14-session",
"params": {
"mediaRevision": 5,
"state": "connected"
}
}M26 · requestAck
{
"msgToken": "s14-33",
"method": "requestAck",
"sessionId": "s14-session",
"data": {
"requestMethod": "mediaState",
"result": {
"mediaRevision": 5,
"state": "connected"
}
},
"code": 200
}M37 · trackState
{
"msgToken": "s14-observed-screen-1-5",
"method": "trackState",
"sessionId": "s14-session",
"data": {
"trackId": "screen-1",
"state": "stopped",
"mediaRevision": 5
}
}M44 · trackState
{
"msgToken": "s14-rear-stopped",
"method": "trackState",
"sessionId": "s14-session",
"data": {
"trackId": "video-rear",
"state": "stopped",
"mediaRevision": 5
}
}M33 · mediaUpdated
{
"method": "mediaUpdated",
"msgToken": "s14-audit-11",
"sessionId": "s14-session",
"eventSeq": 5,
"data": {
"state": "applied",
"revision": 4,
"mediaRevision": 5,
"tracks": [],
"requestToken": "s14-31"
}
}M27 · sessionEnd
{
"msgToken": "s14-34",
"method": "sessionEnd",
"sessionId": "s14-session",
"params": {
"reason": "userHangup"
}
}M28 · sessionEnded
{
"msgToken": "s14-34",
"method": "sessionEnded",
"sessionId": "s14-session",
"data": {
"state": "ended",
"reason": "userHangup"
},
"code": 200
}M29 · mediaUpdate
{
"msgToken": "s14-extra-28",
"method": "mediaUpdate",
"sessionId": "s14-another",
"params": {
"operation": "remove",
"expectedRevision": 0,
"trackIds": [
"screen-1"
]
}
}M30 · mediaUpdated
{
"msgToken": "s14-extra-28",
"method": "mediaUpdated",
"sessionId": "s14-another",
"code": 200,
"data": {
"state": "pending",
"revision": 1,
"mediaRevision": 2,
"tracks": [],
"requestToken": "s14-extra-28"
}
}M38 · mediaOffer
{
"msgToken": "s14-remove-offer",
"method": "mediaOffer",
"sessionId": "s14-another",
"params": {
"mediaRevision": 2,
"webrtc": {
"iceMode": "complete",
"sdp": "<SDP offer>"
}
}
}M39 · mediaAnswer
{
"msgToken": "s14-remove-offer",
"method": "mediaAnswer",
"sessionId": "s14-another",
"code": 200,
"data": {
"mediaRevision": 2,
"webrtc": {
"iceMode": "complete",
"sdp": "<SDP answer>"
}
}
}M40 · mediaState
{
"msgToken": "s14-remove-connected",
"method": "mediaState",
"sessionId": "s14-another",
"params": {
"mediaRevision": 2,
"state": "connected"
}
}M41 · requestAck
{
"msgToken": "s14-remove-connected",
"method": "requestAck",
"sessionId": "s14-another",
"code": 200,
"data": {
"requestMethod": "mediaState",
"result": {
"mediaRevision": 2,
"state": "connected"
}
}
}M42 · trackState
{
"msgToken": "s14-screen-stopped",
"method": "trackState",
"sessionId": "s14-another",
"data": {
"trackId": "screen-1",
"state": "stopped",
"mediaRevision": 2
}
}M43 · mediaUpdated
{
"msgToken": "s14-r1",
"method": "mediaUpdated",
"sessionId": "s14-another",
"eventSeq": 1,
"data": {
"state": "applied",
"revision": 1,
"mediaRevision": 2,
"tracks": [],
"requestToken": "s14-extra-28"
}
}更新日志
2026/10/17 03:27
查看所有更新日志
d04e1-docs(AI与音视频): 按公共主线与场景分支整合接入手册于
