我正在使用wowza与HLS一起播放直播。现在,例如,如果有人正在观看实时流并且正在观看直播的人停止播放,则观看者端的直播流也应该停止,而不必刷新列表。
我所尝试的是设置观察者观察缓冲区和视频停止播放的状态变化等。
func addMyObservers() {
NotificationCenter.default.addObserver(self, selector: #selector(videoStopped(_:)), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: self)
self.addObserver(self, forKeyPath: "playbackLikelyToKeepUp", options: .new, context: nil)
self.addObserver(self, forKeyPath: "playbackBufferEmpty", options: .new, context: nil)
self.addObserver(self, forKeyPath: "playbackBufferFull", options: .new, context: nil)
}
现在我得到playBackBufferEmpty
的回调,如果流已被用户端的流媒体停止,但不是AVPlayerItemDidPlayToEndTime
,我猜这是可以理解的。
一种可能的解决方案是使用推送通知,但我想避免这种情况(因为无法保证它们被接收)而另一种解决方案是在后端创建套接字连接,这也是不可能的。
有没有人知道如何实现在流媒体停止录制或直播流结束时观众UI自动更新?