【问题标题】:How to stop AVPlayer at specific time?如何在特定时间停止 AVPlayer?
【发布时间】:2016-06-30 07:29:22
【问题描述】:

我的代码:

    playerController = [[AVPlayerViewController alloc]init];


    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(playerItemDidReachEnd:)
                                                 name:AVPlayerItemDidPlayToEndTimeNotification
                                               object:[playerController.player currentItem]];

    playerController.player = [AVPlayer playerWithURL:videoURL];

    playerController.view.frame = self.view.frame;

    [playerController.player seekToTime:kCMTimeZero];

    playerController.player.actionAtItemEnd = AVPlayerActionAtItemEndPause;

    [playerController.player play];

    [self presentViewController:playerController animated:YES completion:nil];

这里我在特定时间停止视频。

【问题讨论】:

  • 你想做什么?例如在 3 分 34 秒停止视频?
  • 这个具体时间会一直一样吗?
  • 没有某些条件 3sec 或 4sec
  • 我正在为您编写一些代码,将在几分钟后发布!

标签: ios iphone avplayer avplayerviewcontroller avplayeritem


【解决方案1】:

你要做的是:

在 .h 文件中创建以下属性:

@property (strong) id playerObserver;

将此代码添加到 .m 文件中:

AVPlayer *player = [AVPlayer playerWithURL:[NSURL URLWithString:@"http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"]];

[player play];

self.playerObserver = [player addBoundaryTimeObserverForTimes:@[[NSValue valueWithCMTime:CMTimeMake(1, 1000)]] queue:NULL usingBlock:^{
    NSLog(@"Video started playing");

    [player performSelector:@selector(pause) withObject:nil afterDelay:3.0]; //will pause player after 3.0 seconds
    [player removeTimeObserver:self.playerObserver];
}];

此代码将跟踪视频何时开始播放。然后,在您想要的任何时间(此处为 3 秒)之后,它将暂停播放器。至少,我们移除了播放器上的观察者。

希望这会有所帮助!

【讨论】:

  • 我在发布之前尝试了代码,它有效。也许您的实现完全不同。对于您的第二个问题,我认为您的第一个修复负责,因为pause 无法进行循环播放。
  • 你说你添加了playerController.player.currentItem.forwardPlaybackEndTime = CMTimeMake(timeDuration, 1);,我认为是这条线导致了这个错误。
【解决方案2】:

SWFIT 3 版本来自@Anthonin C 的回答。

player = AVPlayer(url: tmpURL)
player?.perform(#selector(player?.pause), with: nil, afterDelay: 3)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多