音视频通信 RTC(Real-Time Communication)是阿里云覆盖全球的实时音视频开发平台,依托核心音视频编解码、信道传输、网络调度技术,提供高可用、高品质、超低延时的音视频通信服务,让用户快速搭建多端实时应用,适用于在线教育、视频会议、互动娱乐、音视频社交等场景。
产品链接:https://www.aliyun.com/product/rtc
通过阅读本文,您可以了解到当 Web 端没有麦克风时,设备推视频流的方法。
- 设置纯订阅模式跳过 isSupport 设备检测。
aliWebrtc.isSupport({isReceiveOnly: true}).then((re)=>{ // 支持纯订阅模式 }).catch(err => { // 不支持纯订阅模式 })
- 获取 audiotrack,设置外部输入
setExternalMediaTrack
替换音频流。可通过 audio、video 或 canvas 播放音频或视频,使用captureStream
方法获取 mediaStream,然后调用mediaStream.getAudioTracks()
获取音频列表,再获取其中某一个 audiotrack。最后设置外部输入setExternalMediaTrack
替换音频流。
let mediaStream = video.captureStream(); // video为播放视频的media标签 let audiotracks = mediaStream && mediaStream.getAudioTracks() let audiotrack = (audiotracks && audiotracks.length) ? audiotracks[0] aliWebrtc.setExternalMediaTrack(audiotrack, 0);
说明
- 设置外部输入前需要先停止正在进行的推流。
- 每次停止推流后都需要重新设置外部输入。
- 正常推流(此时可以不推音频流,SDK 内部识别出已经推了外部输入音频,因此会跳过设备检测)。
「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实践技术文章,在这里与音视频领域一流工程师交流切磋。