我正在使用webrtc与同行之间进行通信.我不想为旧生成的流添加新轨道,因为我不想在音频通信期间为用户提供切换麦克风的功能.我正在使用的代码是,
让"pc"成为通过其进行音频通信的peerConnection对象,"newStream"是使用新选择的麦克风设备从getUserMedia函数获得的新生成的MediaStream.
var localStreams = pc.getLocalStreams()[0];
localStreams.removeTrack(localStreams.getAudioTracks()[0]);
var audioTrack = newStream.getAudioTracks()[0];
localStreams.addTrack(audioTrack);
Run Code Online (Sandbox Code Playgroud)
他们以任何方式新添加的曲目开始到达另一个先前连接的同伴而不再向他提供整个SDP吗?
在交换媒体设备的情况下使用的优化方式是什么,即在对等体之间已经建立连接的情况下使用麦克风?
我正在尝试使用 MediaRecorder API 构建屏幕录制。
作为暗示性媒体记录方法
var chunks = [];
var recorder = new MediaRecorder(stream);
recorder.streams = [stream];
recorder.ondataavailable = function(e) {
chunks.push(e.data);
};
recorder.onstop = function(){
var blob = new Blob(chunks, {type: "video/webm"});
chunks = [];
var mimeType = 'video/webm';
var fileExtension = 'webm';
var file = new File([blob ? blob : ''], getFileName(fileExtension), {
type: mimeType
});
};
Run Code Online (Sandbox Code Playgroud)
使用这种方法录制工作正常,但录制的视频搜索不起作用。
我在网上搜索了一些关于这个问题的信息,我发现视频标题不包含持续时间。
在file控制台上打印对象时,它包含以下属性,
lastModified : 1527592713006
lastModifiedDate : Tue May 29 2018 16:48:33 GMT+0530 (India Standard Time)
name : …Run Code Online (Sandbox Code Playgroud) javascript screen-recording web-mediarecorder mediarecorder-api
我正在使用Kurento Media Server 6.0作为MCU来进行一对多通信.我正在尝试重新协商SDP以进行mediaStreams切换.为此,我使用以下代码:
让webRtcEndPoint是某些MediaPipeline上创建的endPointUser
webRtcEndPoint.processOffer(sdpOffer, function(error, _sdpAnswer) {
if (error) {
console.log("SdpOffer not accepted by kurento");
return console.log(error);
}
console.log(_sdpAnswer);
});
Run Code Online (Sandbox Code Playgroud)
它正在返回错误
{[错误:端点已经协商]代码:40208,数据:{type:'SDP_END_POINT_ALREADY_NEGOTIATED'}}
如何在不创建整个webrtcEndPoint的情况下与Kurento Media Server重新协商用户(即不在用户和Kurento Media Server之间创建全新连接)?
有没有办法做到screen sharing使用webrtc无强制性installation of any extension的Hangout吗?为什么hangout从不要求安装任何扩展来进行屏幕共享?
我正在为 chrome 商店构建一个屏幕录像机插件。我正在将麦克风的音轨添加到包含(屏幕的视频轨道 + 系统音轨)的媒体流中。所以最终流包含 2 个音轨,一个是麦克风,另一个是系统音频。
当我将此流传递给 MediaRecorder(stream) 时,与最终视频相比,我只能收听stream.getAudioTracks() 中索引为 0 的单个音频,即 MediaRecorder 仅录制单个音轨。
那么如何使用 MediaRecorder 录制包含多音轨的流呢?