gpt4 book ai didi

ios - AVQueuePlayer 仅从数组中播放一次音频

转载 作者:行者123 更新时间:2023-11-29 01:09:50 27 4
gpt4 key购买 nike

我有如下的 QueuePlayer 数组,

Print Queue Player array : (
"<AVQueuePlayer: 0x7fed625a51c0>",
"<AVQueuePlayer: 0x7fed624baa00>",
"<AVQueuePlayer: 0x7fed624c43c0>"
)

点击按钮我正在播放上面数组中的音频,

-(IBAction)click_Play:(UIButton *)sender {

[(AVQueuePlayer *)[arrQueuePlayer objectAtIndex:sender.tag] setVolume:1.0];
[(AVQueuePlayer *)[arrQueuePlayer objectAtIndex:sender.tag] play];
}

生成 QueuePlayer 数组的原因是,我的播放按钮在 UITableView 中。单击按钮时从阵列播放音频仅在第一次运行良好。如果我再次点击播放按钮。它不播放声音。不知道出了什么问题。我通过调试代码检查了它,我的数组正在被清空或任何东西。那么为什么点击按钮后不再播放呢?

请帮帮我。提前致谢!

最佳答案

因为你是从数组中播放queue player,有可能播放一次就变成nil了。我不确定这是否是您的实际问题。因为我不知道您是如何创建这些队列播放器对象并将其添加到数组中的。但我想队列播放器对象在播放后变为 nil 应该是问题所在。

如果是这样,那么您必须在播放队列播放器后重新创建它。由于AVQueuePlayer没有任何委托(delegate)方法,例如audioPlayerDidFinishPlaying:(这是AVAudioPlayer的委托(delegate)方法)。因此,对于 AVQueuePlayer,您需要为 playerItemDidReachEnd: 添加观察者,如下所示,

[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(playerItemDidReachEnd:)
name:AVPlayerItemDidPlayToEndTimeNotification
object:item];

在此观察者方法中,重新创建您的队列播放器并将其替换为您的数组。希望它能帮助你!干杯..

关于ios - AVQueuePlayer 仅从数组中播放一次音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35884697/

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