我刚刚创建了AVPlayer,它可以很好地播放音乐。我有两个问题
答案 0 :(得分:6)
使用-[AVPlayer replaceCurrentItemWithPlayerItem]
替换重播播放器实例的当前播放项目。您可以使用URL或资产创建项目。
为了知道某个项目何时结束播放,请使用通知AVPlayerItemDidPlayToEndTimeNotification
。
在玩家正在玩游戏时,使用-[AVPlayer addPeriodicTimeObserverForInterval]
定期执行某些操作。见这个例子:
[self.player addPeriodicTimeObserverForInterval:CMTimeMakeWithSeconds(0.1, 100)
queue:nil
usingBlock:^(CMTime time) {
<# your code will be called each 1/10th second #>
}];
答案 1 :(得分:3)
1)如果您使用 - (id)initWithURL:(NSURL *)URL,那么您应该暂停播放器,释放它并创建新实例。
AVPlayer *player = [AVPlayer alloc] initWithURL:[NSURL URLWithString:@"http:/someurl.com"]];
[player play];
[player pause];
[player release];
player = [AVPlayer alloc] initWithURL:[NSURL URLWithString:@"http:/someurl2.com"]];
[player pause];
[player release];
如果您使用了playerWithURL,那么只需再次调用同一行。
2)。最简单的是当前项https://stackoverflow.com/a/3999238/619434的获取持续时间,然后使用该值更新UISlider。您可以使用NSTimer定期检查持续时间。
self.player.currentItem.asset.duration