빠른 질문이 있습니다. peerjs와 영상 채팅을하고 있는데 함수가 정의되지 않았다는 오류가 발생합니다. 다음은 코드입니다.
주요 생성자는 다음과 같은 다른 파일에서 호출되는 Voip입니다.
var voip = new Voip();
이것은 기능입니다 :
function Voip(options) {
var self = this;
options = options || {};
var allOptions = _.extend({
secure: true,
debug: 3
}, options);
this.peerjs = new Peer(allOptions);
첫 번째 문제는 여기입니다. 이벤트 함수 otherCall이 맨 아래에 있음을 듣고 콜백 함수 내에서 otherCall을 호출하는 방법은 무엇입니까? 이제 this.otherCall로 작성되었지만 작동하지 않습니다. 전화 이벤트를 받고 전화를받을 때마다이 기능으로 이동하고 싶습니다.
this.peerjs.on('call', function(call){
call.answer(window.localStream);
this.otherCall(call);
});
}
그런 다음 Voip는 EventEmitter 상속으로 확장됩니다. 이 라인을 완전히 제거하고 동일한 기능을 유지할 수 있습니까? 나는 EventEmitter를 전혀 사용하지 않지만 내가 도운 코드에서 사용되었습니다.
Voip.prototype = _.extend(EventEmitter.prototype, {
그리고 여기에서도 self.otherCall이 작동하지 않습니다. 해결책이 무엇 이니?
callOther: function(receiverId) {
var self = this;
var call = self.peerjs.call(receiverId, window.localStream);
self.otherCall(call);
},
otherCall: function(call) {
if (window.existingCall) {
window.existingCall.close();
}
call.on('stream', function(stream){
$('iframe').putthecodein....(stream)
});
window.existingCall = call;
}
});
내 질문에 대해 분명했기를 바랍니다. 요약하면 호출 이벤트를들을 때 otherCall 함수를 한 번 호출하고 callOther 함수 내에서 두 번째로 호출하고 싶습니다. 그리고 EventEmitter를 상속하기 위해 해당 라인이 필요하지 않고 모든 것이 여전히 작동하도록 코드를 수정할 수 있는지 궁금합니다.
이렇게 사용하십시오. 작동 할 수 있습니다.
var self = this;
self.peerjs.on('call', function(call){
call.answer(window.localStream);
self.otherCall.call(self, call);
});
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다