如何更改现有流的音轨
WebRTC - How to change the audio track for a existing stream
我已经建立了音频和视频的webbrtc连接。
在调用方,我想更改音频输入。。
用户通过下拉列表修改audioinput
。替换现有流的音轨的工作流程是什么?
我可以添加另一个音轨并使一个在另一个上活动吗?如何?
看起来我可能需要再次调用getUserMedia
传递约束(?),根据我的理解,这是创建一个新的mediaStream
实例,而不是修改现有的。
对于我们来说,它看起来像这样:
const replaceTrack = async (peerConnection, oldSender, track, stream) => {
peerConnection.removeTrack(oldSender);
const newSender = peerConnection.addTrack(track, stream);
const localSdp = await peerConnection.createOffer({ offerToReceiveAudio: 1 });
await peerConnection.setLocalDescription(reply);
const response = await sendOffer(peerConnection.localDescription);
const description = new RTCSessionDescription(response);
peerConnection.setRemoteDescription(description);
return newSender;
}
现在有一个更简单的API用于此操作:RTCRtpSender.replaceTrack().
可以是这样的:
const currentSenders = peerConnection.getSenders();
const currentAudioSender = currentSenders.find((s) => s.track.kind === 'audio');
currentAudioSender.replaceTrack(newAudioTrack);
相关文章:
- 替换视频的音轨
- 使用JavaScript的流式soundcloud音轨;不起作用
- 如何在Javascript中消除音轨之间的停顿
- 在浏览器中启用/禁用同步音轨
- 音轨 JS 功能无法播放或暂停音频
- 音轨在Javascript中循环播放,没有延迟
- 从多个设备同时在多个音轨上录制音频
- 如何从MediaStream中删除音轨;停止“;网络摄像头
- 使用单个控制器控制多个html5音轨
- Javascript:从soundcloud api设置音轨位置
- 使html视频文本音轨中的字幕越来越小
- 将视频音轨src替换为变量
- 如何使用
- 使用soundloud API从用户提要获取所有音轨
- 在播放列表中更新音轨排序
- 用Node.js叠加两个音轨
- 当某个dom元素进入视口时改变音轨
- 如何更改现有流的音轨
- 如何为特定的音轨调用soundcloud sdk
- 如何让Safari(最新版本)在MP4视频中选择默认音轨,当有多个语言音轨嵌入