gpt4 book ai didi

ios - 没有 AVPlayer 代表?如何跟踪歌曲何时播放完毕? Objective C iPhone 开发

转载 作者:IT老高 更新时间:2023-10-28 11:22:12 28 4
gpt4 key购买 nike

我环顾四周,但找不到 AVPlayer 类 的委托(delegate)协议(protocol)。什么给了?

我正在使用它的子类 AVQueuePlayer 来播放 AVPlayerItems 数组,每个数组都从 URL 加载。当歌曲播放完毕时,有什么方法可以调用方法吗?尤其是在队列的末尾?

如果这不可能,有什么方法可以在歌曲开始播放时调用方法,缓冲后?我试图在其中获得一个加载图标,但它会在音乐实际开始之前关闭图标,即使它是在 [audioPlayer play] 操作之后。

最佳答案

是的,AVPlayer 类没有像 AVAudioPlayer 这样的委托(delegate)协议(protocol)。您需要订阅 AVPlayerItem 上的通知。您可以使用相同的 URL 创建 AVPlayerItem,否则您将传递给 AVPlayer 上的 -initWithURL:

-(void)startPlaybackForItemWithURL:(NSURL*)url {

// First create an AVPlayerItem
AVPlayerItem* playerItem = [AVPlayerItem playerItemWithURL:url];

// Subscribe to the AVPlayerItem's DidPlayToEndTime notification.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(itemDidFinishPlaying:) name:AVPlayerItemDidPlayToEndTimeNotification object:playerItem];

// Pass the AVPlayerItem to a new player
AVPlayer* player = [[[AVPlayer alloc] initWithPlayerItem:playerItem] autorelease];

// Begin playback
[player play]

}

-(void)itemDidFinishPlaying:(NSNotification *) notification {
// Will be called when AVPlayer finishes playing playerItem
}

关于ios - 没有 AVPlayer 代表?如何跟踪歌曲何时播放完毕? Objective C iPhone 开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6837002/

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