gpt4 book ai didi

ios - AVPlayer 播放、暂停和缓冲问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:17:38 24 4
gpt4 key购买 nike

我的应用播放流媒体视频,但是当它缓冲时,播放器进入暂停模式,我必须再次手动将其设置为播放模式,我的 AVPlayer 类中有以下代码来处理这种情况,但它不起作用。

在ViewDidLoad方法中

[playerItem addObserver:self forKeyPath:@"playbackBufferEmpty" options:NSKeyValueObservingOptionNew context:nil];
[playerItem addObserver:self forKeyPath:@"playbackLikelyToKeepUp" options:NSKeyValueObservingOptionNew context:nil];

然后,使用以下方法处理观察者

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context {
if (!player)
{
return;
}

else if (object == playerItem && [keyPath isEqualToString:@"playbackBufferEmpty"])
{
if (playerItem.playbackBufferEmpty) {
//Your code here
}
}

else if (object == playerItem && [keyPath isEqualToString:@"playbackLikelyToKeepUp"])
{
if (playerItem.playbackLikelyToKeepUp)
{
//Your code here
}
}

为了让玩家继续游戏模式,是否有解决此问题的另一种方法?

最佳答案

这可能有帮助,

假设这是您的 AVPlayer 对象
player1 = [AVPlayer playerWithURL:streamURL];

当您的视频进入缓冲模式时,您可以暂停它,并在它完成后再次播放,例如:在观察者方法中,

if ([object isKindOfClass:[AVPlayerItem class]])
{
AVPlayerItem *item = (AVPlayerItem *)object;
//playerItem status value changed?
if ([keyPath isEqualToString:@"status"])
{ //yes->check it...

NSLog(@"STATUS = %d",item.status);
switch(item.status)
{
case AVPlayerItemStatusFailed:
NSLog(@"player item status failed");
break;
case AVPlayerItemStatusReadyToPlay:

[playButton setTitle:@"Pause" forState:UIControlStateNormal];
[player1 play];

NSLog(@"player item status is ready to play");
break;
case AVPlayerItemStatusUnknown:
NSLog(@"player item status is unknown");
break;
}
}
else if ([keyPath isEqualToString:@"playbackBufferEmpty"])
{
if (item.playbackBufferEmpty)
{
[playButton setTitle:@"Play" forState:UIControlStateNormal];
[player1 pause];
NSLog(@"player item playback buffer is empty");
}
}
}

或者您可以维护按钮点击事件。在屏幕上放置一个按钮以保持播放和暂停,并使用 OnClick 事件将目标添加到它。

关于ios - AVPlayer 播放、暂停和缓冲问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25615086/

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