1

iOS 9 では、ライブ ビデオの再生中に SeekToTime メソッドが機能しません。シーク後も、ビデオがシーク位置から再生されません。以前の 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 のバグですか。

4

1 に答える 1

1

この問題も発生しました。私が見たケースは、 を呼び出したときに AVPlayer が一時停止した場合-[AVPlayer seekToTime:]、プレーヤーが最新の HLS セグメントの最後にジャンプするというものでした。

私の解決策は、呼び出す[player play] 直前に呼び出すことでした-[AVPlayer seekToTime:]...だから、これが得られます:

[self.player play]
[self.player seekToTime:CMTimeMakeWithSeconds(10.0, 25.0) toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero completionHandler:^(BOOL finished)
{
    [player play];
}];
于 2016-03-02T22:46:24.670 に答える