gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 04:35:01 24 4
gpt4 key购买 nike

我正在尝试从 URL 播放流,但这是一个问题。 ObserveValueForKeyPath:ofObject:change:context 只是不执行。据我了解,它不取决于 streamURL,无论它是否正确。它必须将状态从 AVPlayerItemStatusUnknown 更改为 AVPlayerItemStatusReadyToPlay 或 AVPlayerItemStatusFailed。但尽管如此,我还是在浏览器中检查了该 URL,它工作正常。所以有什么问题?我看了关于它的 WWDC 视频,它说,如果你有音频流,请使用 AVPLayerItem before AVAsset。

这是我的代码:

- (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 上的 status 属性,而不是 AVPlayerItem 上的属性,因为无论如何你都需要一个播放器来播放播放器项目.事实上,我什至从未看过播放器项目的状态属性。

播放器项目的状态可能永远不会改变,因为没有播放器准备播放它。因此,使用播放器项目创建播放器并观察播放器的状态(或者可能仍然是播放器项目的状态)。

AVPlayer *player = [AVPlayer playerWithPlayerItem:playerItem];

关于ios - 无法观察 @“status” 键的 AVPlayerItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22178444/

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