如何将获取的 stream 资源转换成 track 资源

通过 Web RTC api 获取到的 mediastream 资源,如何转换成对应的 audioTrack 和 videoTrack ?
发布时间: 2021-12-27 12:04

回答:

使用 5.X RCT SDK 版本发布资源传入的是 track 数组,如下示例:

const { code } = await room.publish([audioTrack, videoTrack])


那么这时候我使用 Web RTC API 来获取资源,需要转换成对应的 audioTrack 和 videoTrack 才能发布,下面以获取屏幕共享流的 API 示例:


navigator.mediaDevices.getDisplayMedia({audio: true, video: true}).then((mediastream)=>{
    // rtcClient 是 rtc 初始化的实例  'tag' 为标识符(字符串类型),用户可以自己定义
    rtcClient.createLocalAudioTrack('tag',mediastream.getAudioTracks()[0]).then((audioTrack)=>{
     console.log(audioTrack)
    })
    rtcClient.createLocalVideoTrack('tag',mediastream.getVideoTracks()[0]).then((videoTrack)=>{
     console.log(videoTrack)
    })
})