gpt4 book ai didi

ios - 处理 AVPlayer 停顿

转载 作者:可可西里 更新时间:2023-11-01 03:17:41 25 4
gpt4 key购买 nike

我试图捕捉 AVPlayer 无法继续播放的时刻,以防没有更多媒体可用(网络太慢、信号丢失等)。如文档和不同示例中所述,我正在使用 KVO 来检测:

item = [[AVPlayerItem alloc] initWithURL:audioURL];
player = [AVPlayer playerWithPlayerItem:item];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onItemNotification:) name:AVPlayerItemPlaybackStalledNotification object:item];
[item addObserver:self forKeyPath:@"playbackBufferEmpty" options:NSKeyValueObservingOptionNew context:nil];
[item addObserver:self forKeyPath:@"playbackLikelyToKeepUp" options:NSKeyValueObservingOptionNew context:nil];

...

- (void) onItemNotification:(NSNotification*)not
{
NSLog(@"Item notification: %@", not.name);
}

...

- (void) observeValueForKeyPath:(NSString*)keyPath ofObject:(id)object change:(NSDictionary*)change context:(void*)context
{
NSLog(@"Observe keyPath %@", keyPath);
}

我正在开始播放,然后关闭 WiFi。不幸的是,“playbackBufferEmpty”和“AVPlayerItemPlaybackStalledNotification”都没有出现。在播放停止的那一刻,我只收到一个 AVPlayerItemTimeJumpedNotification,仅此而已。但是,当我收到这些通知时至少有 2 次。但我无法弄清楚每次播放停止时如何获取它们。我做错了什么吗?

最佳答案

首先尝试从您的路由器断开互联网连接,您将收到 playbackBufferEmpty 通知。要处理网络切换,您需要实现 Reachability

关于ios - 处理 AVPlayer 停顿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20784486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com