如何解决无法第二次调用 peer.on("track", ...)
我将 Simple-peer 用于简单的呼叫应用程序,我最初仅使用音频开始呼叫:
function callPeer(id) {
if (id !== "" && id !== currentUser.id) {
navigator.mediaDevices
.getUserMedia({ video: false,audio: true })
.then((stream) => {
setStream(stream);
setCallingFriend(true);
setCallerNew(id);
if (userVideo.current) {
userVideo.current.srcObject = stream;
}
const peer = new Peer({
initiator: true,trickle: false,config: {
iceServers: [
{
urls: "stun:numb.viagenie.ca",username: "sultan1640@gmail.com",credential: "98376683",},{
urls: "turn:numb.viagenie.ca",],stream: stream,});
....
....
现在开始音频通话后,我想将视频轨道添加到我尝试过的当前通话中:
const videoCall = () => {
navigator.mediaDevices
.getUserMedia({ video: true,audio: true })
.then((strm) => {
userVideo.current.srcObject = strm;
setStream(strm);
myPeer.current.addTrack(strm.getVideoTracks()[0],stream);
})
.catch((err) => console.log("Cant add video: " + err));
};
在接收方我正在使用:
peer.on("track",(track,stream) => {
console.log("A track has been added.");
});
但由于某种原因,只有在我第一次开始音频通话时才会调用这个 on track ,但是在将视频轨道添加到对等点时它不会被调用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。