更改音轨时媒体记录停止Webrtc

问题描述

我正在与webrtc一起录制音频和视频,但遇到了问题 我开始使用MediaRecorder进行录制,但是它可以正常工作,但是当我更改本地录制流的音频轨道(用于在录制过程中更改音频输入设备以捕获其他麦克风的录制)时,MediaRecorder停止发送Blob数据。

mediaRecorder = new MediaRecorder(window.stream,options);
var audioTrack = window.stream.getAudioTracks()[0];
mediaRecorder.start(1000); 

更改设备的功能(在录制过程中切换麦克风)

audioTrack.stop();
const new_stream = await gUM({ audio: constraints });
const new_track = new_stream.getAudioTracks()[0];
audioTrack = new_track;

如果我停止了audioTrack,则MediaRecorder停止发送blob,但是如果我不停止分配新轨道,它就可以正常工作,但设备没有更改,它仍然会捕获以前设备的录音。我也应用了约束,但它也不能反映音频的任何变化

await audioTrack.applyConstraints(Object.assign(audioTrack.getSettings(),constraints));

我的要求只是不要在更换新设备(麦克风/摄像头)后停止记录

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)