OpentTok (iOS) 如何订阅 hasAudio 流变化
OpentTok (iOS) How to subscribe to hasAudio stream changes
我需要在 TokBox iOS SDK 中找到一种可能性,以查明订阅的流是否动态/通过事件具有音频。 (OTStream.hasAudio
)
OTSubscriberDelegate
提供订阅视频状态的回调 subscriberVideoEnabled/Disabled
但我找不到任何音频。
- JS SDK为此提供了
StreamPropertyChangedEvent
。
- Android SDK 为此提供了
StreamPropertiesListener
。
- iOS 似乎是唯一没有合适解决方案的平台。
此处为 TokBox 开发者布道师。
对于 iOS SDK,我们不提供流 属性 更改的委托,但您可以实现 key value observing(KVO) 来检查观察到的流 属性已经改变。
在下面的示例中,我为 hasAudio
流 属性 添加了一个观察者,观察者将在它发生变化时打印旧值和新值。
func session(_ session: OTSession, streamCreated stream: OTStream) {
let hasAudioObservation: NSKeyValueObservation = stream.observe(\.hasAudio, options: [.old, .new]) { object, change in
guard let oldValue = change.oldValue else { return }
guard let newValue = change.newValue else { return }
print("Old stream value: \(oldValue)")
print("New stream value: \(newValue)")
}
我需要在 TokBox iOS SDK 中找到一种可能性,以查明订阅的流是否动态/通过事件具有音频。 (OTStream.hasAudio
)
OTSubscriberDelegate
提供订阅视频状态的回调 subscriberVideoEnabled/Disabled
但我找不到任何音频。
- JS SDK为此提供了
StreamPropertyChangedEvent
。 - Android SDK 为此提供了
StreamPropertiesListener
。 - iOS 似乎是唯一没有合适解决方案的平台。
此处为 TokBox 开发者布道师。
对于 iOS SDK,我们不提供流 属性 更改的委托,但您可以实现 key value observing(KVO) 来检查观察到的流 属性已经改变。
在下面的示例中,我为 hasAudio
流 属性 添加了一个观察者,观察者将在它发生变化时打印旧值和新值。
func session(_ session: OTSession, streamCreated stream: OTStream) {
let hasAudioObservation: NSKeyValueObservation = stream.observe(\.hasAudio, options: [.old, .new]) { object, change in
guard let oldValue = change.oldValue else { return }
guard let newValue = change.newValue else { return }
print("Old stream value: \(oldValue)")
print("New stream value: \(newValue)")
}