我已经使用agora CDN在我的angular 5应用程序中实现了agora代码。相机正在打开,但一对一用户看不到彼此的视频帧。 为什么?
var self = this; var client = AgoraRTC.createClient({mode:'rtc',codec:“ h264”});
client.init('my key',function(){
console.log("AgoraRTC client initialized");
client.join(null, 'TestChanel', null, function (uid) {
console.log("User " + uid + " join channel successfully");
self.uId = uid;
var localStream = AgoraRTC.createStream({
// streamID: uid,
// audio: true,
// video: true,
// screen: false,
streamID: uid,
audio: true,
cameraId: self.deviceId,
// microphoneId: self.microphone,
video: true,
screen: false,
extensionId: 'minllpmhdgpndnkomcoccfekfegnlikg',
}
);
localStream.init(function () {
console.log("getUserMedia successfully");
localStream.play('agora_local');
// localStream.play('video-caller');
client.publish(localStream, function (err) {
console.log("Publish local stream error: " + err);
});
client.on('stream-published', function (evt) {
console.log("Publish local stream successfully");
});
client.on('stream-added', function (evt) {
var stream = evt.stream;
console.log("New stream added: " + stream.getId());
client.subscribe(stream, function (err) {
console.log("Subscribe stream failed", err);
});
});
client.on('stream-subscribed', function (evt) {
var remoteStream = evt.stream;
console.log("Subscribe remote stream successfully: " + remoteStream.getId());
remoteStream.play('agora_remote' + remoteStream.getId());
})
}, function (err) {
console.log("getUserMedia failed", err);
});
}, function (err) {
console.log("Join channel failed", err);
});
},函数(err){
console.log("AgoraRTC client init failed", err);
});
答案 0 :(得分:1)
有些事情可能会帮助您解决此问题:
npm install --save-dev @types/agora-rtc-sdk
为SDK安装基本的类型库,以提供更多的调试功能。rxjs
的{{3}},然后再尝试play
远程流,这有时有助于确保流被播放。cameraId
方法中分配createStream()
,或者未使用this
而不是self
-Angular可能因此而出现问题。还要确保在以后的测试中,timer中使用的uid
对于两个用户而言都是相同的类型。在一个客户端传递number
而另一个客户端传递string
之前,我曾遇到过这个问题。
如果您正在使用Chrome浏览器在两个用户之间进行测试,则可能不是浏览器问题,但是根据SDK版本的不同,您应该研究一些join()
。