Я реализовал код Agora в своем приложении angular 5, используя Agora CDN. Камера открывается, но пользователи один в один не видят видеокадр друг друга. Почему?
переменная самость = это; var client = AgoraRTC.createClient({режим: 'rtc', кодек: "h264" });
client.init('мой ключ', функция () {
console.info("AgoraRTC client initialized");
client.join(null, 'TestChanel', null, function (uid) {
console.info("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.info("getUserMedia successfully");
localStream.play('agora_local');
// localStream.play('video-caller');
client.publish(localStream, function (err) {
console.info("Publish local stream error: " + err);
});
client.on('stream-published', function (evt) {
console.info("Publish local stream successfully");
});
client.on('stream-added', function (evt) {
var stream = evt.stream;
console.info("New stream added: " + stream.getId());
client.subscribe(stream, function (err) {
console.info("Subscribe stream failed", err);
});
});
client.on('stream-subscribed', function (evt) {
var remoteStream = evt.stream;
console.info("Subscribe remote stream successfully: " + remoteStream.getId());
remoteStream.play('agora_remote' + remoteStream.getId());
})
}, function (err) {
console.info("getUserMedia failed", err);
});
}, function (err) {
console.info("Join channel failed", err);
});
}, функция (ошибка) {
console.info("AgoraRTC client init failed", err);
});
Вы видели пакет Agora NPM для Angular? Вот статья, посвященная этой теме. medium.com/@Anderson7301/…
Есть несколько вещей, которые могут помочь вам решить эту проблему:
npm install --save-dev @types/agora-rtc-sdk
, чтобы получить больше возможностей для отладки.rxjs
перед попыткой play
удаленного потока, что иногда помогает обеспечить воспроизведение потока.cameraId
в методе createStream()
или использовать this
вместо self
— из-за этого у вас могут возникнуть проблемы с Angular.Также в будущих тестах убедитесь, что uid
, используемый в join()
, имеет один и тот же тип для обоих пользователей. Я сталкивался с этой проблемой раньше, когда один клиент передал number
, а другой передал string
.
Если вы используете Chrome для проверки этого между двумя пользователями, то, вероятно, это не проблема браузера, но, в зависимости от версии SDK, вам следует изучить некоторые известные ошибки.
Добро пожаловать в Stack Overflow. Пожалуйста, не публикуйте код в виде изображения, так как это мешает людям легко увидеть вашу проблему и ответить на вопрос. Пожалуйста, отредактируйте свой вопрос, чтобы добавить код в виде текста. Также может быть полезно взять тур и прочитать Как спросить.