AVPlayer 需要很长时间才能开始播放音频
AVPlayer takes long time to start audio play
我有一个音乐播放器,它使用 AVPlayer
从服务器流式传输音频,它可以很好地播放音频,但是在播放完一个音频后,当我点击新音频的播放按钮时,需要一些时间才能开始新的音频大约 35-40 秒。谁能帮帮我?
使用观察者了解播放器状态。
使用 KVO,可以通知玩家状态的变化:
playButton.enabled = NO;
player = [AVPlayer playerWithURL:fileURL];
[player addObserver:self forKeyPath:@"status" options:0 context:nil];
状态改变时会调用此方法:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context {
if (object == player && [keyPath isEqualToString:@"status"]) {
if (player.status == AVPlayerStatusReadyToPlay) {
playButton.enabled = YES;
} else if (player.status == AVPlayerStatusFailed) {
// something went wrong. player.error should contain some information
}
}
}
我有一个音乐播放器,它使用 AVPlayer
从服务器流式传输音频,它可以很好地播放音频,但是在播放完一个音频后,当我点击新音频的播放按钮时,需要一些时间才能开始新的音频大约 35-40 秒。谁能帮帮我?
使用观察者了解播放器状态。 使用 KVO,可以通知玩家状态的变化:
playButton.enabled = NO;
player = [AVPlayer playerWithURL:fileURL];
[player addObserver:self forKeyPath:@"status" options:0 context:nil];
状态改变时会调用此方法:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context {
if (object == player && [keyPath isEqualToString:@"status"]) {
if (player.status == AVPlayerStatusReadyToPlay) {
playButton.enabled = YES;
} else if (player.status == AVPlayerStatusFailed) {
// something went wrong. player.error should contain some information
}
}
}