如何在webrtc中添加画布上的音频流

如何在webrtc中添加画布上的音频流,webrtc,Webrtc,我想将通过getusermedia()获得的音频流添加到画布流,并将其发送到远程对等方。。。 所以我抬起头,看到了addTrack()。 但是addTrack()似乎不能正常工作。我用的是chrome var audioTracks; navigator.getUserMedia({ "audio": true, "video": false }, function (stream) { audioTracks = stream.getAudioTracks()[0]; }, functio

我想将通过getusermedia()获得的音频流添加到画布流,并将其发送到远程对等方。。。 所以我抬起头,看到了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);
这是我代码的一部分。发生了什么? My webrtc完整源代码运行良好,但无法与addTrack()配合使用。

于2018年10月29日更新,将
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);