BRTC SDK 提供了发送自定义消息的功能,通过该功能,角色为主播的用户都可以向同一个视频房间里的其他用户广播自己的定制消息。目前提供一种发送自定义消息的方式:
由于需要把数据嵌入视频帧中,建议尽量控制数据大小,推荐使用几个字节大小的数据。最常见的用法是把自定义的时间戳(timstamp)用 sendSEIMsg 嵌入视频帧中,实现消息和画面的完美对齐。通过调用 BRTC 的 sendSEIMsg 接口发送的,发送时需要指定三个参数:
// 发送自定义消息的示例代码 sendSEIMsg() { // 自定义消息命令字 var msg = 'send SEI message'; var array = new Uint8Array(msg.length); for (var i = 0; i < msg.length; i++) { array[i].msg.charCodeAt(i) } this.client.sendSEIMsg({ data: array.buffer, repeatCount: 1 }) }
当房间中的一个用户通过 sendSEIMsg 发出自定义消息后,房间中其他的用户可以通过 SDK 回调中的 onRecvSEIMsg 接口来接收这些消息。
// 处理接收到的 recv-sei-msg 消息, 其中包含房间内其他人发送的消息 this.client .on('recv-sei-msg', (userId, data) => { console.log('\n userId: ' + userId ' , data: '+ data) // 添加接收到 userId 发送的消息的处理逻辑 } )
由于自定义消息享受比音视频数据更高的传输优先级,如果自定义数据发送过多,音视频数据可能会被干扰到,从而导致画面卡顿或者模糊。所以,我们针对自定义消息的发送进行了如下的频率限制:
发送自定义消息
BRTC SDK 提供了发送自定义消息的功能,通过该功能,角色为主播的用户都可以向同一个视频房间里的其他用户广播自己的定制消息。目前提供一种发送自定义消息的方式:
相关函数接口在 electron-sdk 2.0.7 及以上版本支持。
sendSEIMsg 方式
消息发送
由于需要把数据嵌入视频帧中,建议尽量控制数据大小,推荐使用几个字节大小的数据。
最常见的用法是把自定义的时间戳(timstamp)用 sendSEIMsg 嵌入视频帧中,实现消息和画面的完美对齐。
通过调用 BRTC 的 sendSEIMsg 接口发送的,发送时需要指定三个参数:
消息接收
当房间中的一个用户通过 sendSEIMsg 发出自定义消息后,房间中其他的用户可以通过 SDK 回调中的 onRecvSEIMsg 接口来接收这些消息。
使用限制
由于自定义消息享受比音视频数据更高的传输优先级,如果自定义数据发送过多,音视频数据可能会被干扰到,从而导致画面卡顿或者模糊。所以,我们针对自定义消息的发送进行了如下的频率限制: