#swift #agora.io
Вопрос:
У меня есть учетная запись agora на Android, и она отлично работает . Используя одну и ту же учетную запись для ios с последней версией sdk, я могу заставить пользователей присоединиться к a chnnael с одним и тем же идентификатором, но оба пользователя никогда не подключаются, нет обратного вызова, когда другой пользователь входит в систему, и нет голоса (удалось заставить его работать в первый раз ?)
импорт основы импорт AgoraRtcKit
класс AgoraViewController: UIViewController {
var agoraKit: AgoraRtcEngineKit?
var agoraDelegate: AgoraRtcEngineDelegate?
override func viewDidLoad() {
super.viewDidLoad()
initializeAgoraEngine()
joinChannel()
}
override func viewWillDisappear(_ animated: Bool) {
leaveChannel()
destroyInstance()
}
func initializeAgoraEngine() {
agoraKit = AgoraRtcEngineKit.sharedEngine(withAppId: "Valid Id i can give if needed", delegate: agoraDelegate)
}
func joinChannel() {
let result = agoraKit?.joinChannel(byToken: "Token", channelId: "TestChannel2", info: nil, uid: 0, joinSuccess: {(channel, uid, elapsed) in
})
//result is zero as expected
}
func rtcEngine(_ engine: AgoraRtcEngineKit, didJoinedOfUid uid: UInt, elapsed: Int) {
//is never called
}
func leaveChannel() {
agoraKit?.leaveChannel(nil)
}
func destroyInstance() {
AgoraRtcEngineKit.destroy()
}
}
Ответ №1:
Для поля токен вы используете временный токен, созданный для правильного имени канала? К вашему сведению, срок действия этих токенов истекает через 24 часа.
Если вы используете SDK 3.x, то все остальное должно быть в порядке. Возможно , стоит добавить вызов agoraKit?.enableVideo()
, и этот проект здесь выполняет минимальную настройку с нуля, возможно, стоит посмотреть:
https://github.com/AgoraIO-Community/Agora-iOS-SwiftPM/tree/main/Agora_SDK-Example
другой проект в этом репо использует Agora UIKit, что было бы проще настроить.
Комментарии:
1. Спасибо вам за ответ . Похоже, этот вопрос был связан с делегированием полномочий . Вообще никаких проблем с токенами . Я использовал совершенно другой код для подключения, и это сработало . До сих пор не знаю, почему здесь этого не было .
2. О, теперь я понимаю, вам нужно будет включить
self
вместоagoraDelegate
этого создание двигателя. Рад, что у тебя все получилось!