【问题标题】:seekToTime is not working for Live assets in iOS 9seekToTime 不适用于 iOS 9 中的实时资产
【发布时间】:2016-02-10 14:24:02
【问题描述】:

SeekToTime 方法在 iOS 9 中播放实时视频时不起作用。即使在寻找之后,视频也不会从寻找的位置播放。 在以前的 iOS 版本中,它可以正常工作。 以下是代码...

-(void)loadVideo{

[player pause];
player = nil;

asset = [AVAsset assetWithURL:[NSURL URLWithString:@"http://playertest.longtailvideo.com/adaptive/wowzaid3/playlist.m3u8"]];
playerItem = [AVPlayerItem playerItemWithAsset:asset];
player = [AVPlayer playerWithPlayerItem:playerItem];

AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:player];
playerLayer.frame = CGRectMake(20, 0, 600, 400);
[self.view.layer addSublayer:playerLayer];
[player play];

[self addPlayerTimeObserver];

}

-(IBAction)SeekToTimeInVideo:(id)sender{ [玩家暂停];

[self.player seekToTime:CMTimeMakeWithSeconds(10.0, 25.0) toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero completionHandler:^(BOOL finished)
{
    [player play];

}];

}

有什么想法吗??这是 iOS 9 中的错误吗?

【问题讨论】:

  • 你是如何解决这个问题的?

标签: ios objective-c avplayer avplayeritem seektotime


【解决方案1】:

刚刚也遇到了这个问题。我看到的情况是,如果 AVPlayer 在您调用 -[AVPlayer seekToTime:] 时暂停,播放器将跳转到最近的 HLS 片段的末尾。

我的解决方案是在调用-[AVPlayer seekToTime:]...之前调用[player play]...所以你会得到这个:

[self.player play]
[self.player seekToTime:CMTimeMakeWithSeconds(10.0, 25.0) toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero completionHandler:^(BOOL finished)
{
    [player play];
}];

【讨论】:

    猜你喜欢
    • 2017-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-22
    • 1970-01-01
    • 2018-05-26
    相关资源
    最近更新 更多