ios – 无法观察AVPlayerItem的@“status”键

ios – 无法观察AVPlayerItem的@“status”键,第1张

概述我正在尝试从URL播放流,但这是一个问题. ObserveValueForKeyPath:ofObject:change:context只是不执行.据我了解,这不取决于streamURL,它是否正确.它必须从AVPlayerItemStatusUnknown将状态更改为AVPlayerItemStatusReadyToPlay或AVPlayerItemStatusFailed.但是,我在浏览器中检 我正在尝试从URL播放流,但这是一个问题. ObserveValueForKeyPath:ofObject:change:context只是不执行.据我了解,这不取决于streamURL,它是否正确.它必须从AVPlayerItemStatusUnkNown将状态更改为AVPlayerItemStatusReadytoplay或AVPlayerItemStatusFailed.但是,我在浏览器中检查了该URL,它运行正常.所以有什么问题?我观看了WWDC视频,它说,如果你有音频流,请在AVAsset之前使用AVPLayerItem.

这是我的代码:

- (voID) prepare{    NSURL * trackStreamURL = [NSURL URLWithString:streamURL];    NSLog(@"STREAM URL: %@",trackStreamURL);    _playerItem = [AVPlayerItem playerItemWithURL:trackStreamURL];    [_playerItem addobserver:self forKeyPath:@"status" options:0 context:nil];}- (voID) observeValueForKeyPath:(Nsstring *)keyPath ofObject:(ID)object change:(NSDictionary *)change context:(voID *)context{    NSLog(@"KEY PATH    : %@",keyPath);    NSLog(@"CHANGE      : %@",change);}

提前致谢!

解决方法 我总是在AVPlayer上观察状态属性而不是AVPlayerItem,因为你需要一个玩家来玩玩家项目.事实上,我甚至从未查看过播放器项的状态属性.

玩家项目的状态可能永远不会改变,因为没有玩家准备好玩它.因此,使用玩家项目创建一个玩家并观察玩家的状态(或者可能,仍然是玩家项目的状态).

AVPlayer *player = [AVPlayer playerWithPlayerItem:playerItem];
总结

以上是内存溢出为你收集整理的ios – 无法观察AVPlayerItem的@“status”键全部内容,希望文章能够帮你解决ios – 无法观察AVPlayerItem的@“status”键所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1071920.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存