如何在 webrtc 中的 canvas 流上添加音频流
how to add a audio stream on canvas stream in webrtc
我想将通过getusermedia()获取的音频流添加到canvas流中,并将其发送到远程对端...
于是我查了一下,竟然有addTrack()。
但是addTrack()好像不能正常工作。我 运行 chrome。
var audioTracks;
navigator.getUserMedia({ "audio": true, "video": false }, function (stream)
{
audioTracks = stream.getAudioTracks()[0];
}, function(error) { console.log(error);});
.
.
.
var sharestream = canvas2.captureStream(25); // 25 FPS
peerConn.addTrack(audioTracks,sharestream);
peerConn.addStream(sharestream);
这是我的代码的一部分。怎么了?
我的 webrtc 完整源代码工作正常,但它不适用于 addTrack()。
更新于 10-29-2018,将 getAudioTracks
替换为 getTracks
:
var canvasStream = canvas2d.captureStream(25); // parameter is optional
// get first audio track
// var audioTrack = audioStream.getAudioTracks()[0];
var audioTrack = audioStream.getTracks().filter(function(track) {
return track.kind === 'audio'
})[0];
// append audio track into Canvas2D stream
canvasStream.addTrack( audioTrack );
// now canvas2D stream has both audio and video tracks
// peerConnection.addStream( canvasStream );
canvasStream.getTracks().forEach(function(track) {
peerConnection.Track( track, canvasStream );
});
// create offer or answer descriptions
peerConnection.createOffer(hints).then(success).catch(failure);
我想将通过getusermedia()获取的音频流添加到canvas流中,并将其发送到远程对端... 于是我查了一下,竟然有addTrack()。 但是addTrack()好像不能正常工作。我 运行 chrome。
var audioTracks;
navigator.getUserMedia({ "audio": true, "video": false }, function (stream)
{
audioTracks = stream.getAudioTracks()[0];
}, function(error) { console.log(error);});
.
.
.
var sharestream = canvas2.captureStream(25); // 25 FPS
peerConn.addTrack(audioTracks,sharestream);
peerConn.addStream(sharestream);
这是我的代码的一部分。怎么了? 我的 webrtc 完整源代码工作正常,但它不适用于 addTrack()。
更新于 10-29-2018,将 getAudioTracks
替换为 getTracks
:
var canvasStream = canvas2d.captureStream(25); // parameter is optional
// get first audio track
// var audioTrack = audioStream.getAudioTracks()[0];
var audioTrack = audioStream.getTracks().filter(function(track) {
return track.kind === 'audio'
})[0];
// append audio track into Canvas2D stream
canvasStream.addTrack( audioTrack );
// now canvas2D stream has both audio and video tracks
// peerConnection.addStream( canvasStream );
canvasStream.getTracks().forEach(function(track) {
peerConnection.Track( track, canvasStream );
});
// create offer or answer descriptions
peerConnection.createOffer(hints).then(success).catch(failure);