问题描述
我将 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: "[email protected]",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 (将#修改为@)