gpt4 book ai didi

iphone - AVAudioPlayer 不加载声音

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:55:09 25 4
gpt4 key购买 nike

无论出于何种原因,我在使用 AVAudioPlayer 加载声音时遇到了问题。我正在我的 iPad 设备上测试它。

我的代码相当简单,没有什么花哨的。框架已导入,委托(delegate)已实现。在我的 viewDidLoad 方法中:

NSString *path = [[NSBundle mainBundle] pathForResource:@"sound" ofType:@"mp3"];
AVAudioPlayer *theAudio = [[AVAudioPlayer alloc]
initWithContentsOfURL:[NSURL fileURLWithPath:path]
error:NULL];
[theAudio setDelegate:self];
[theAudio prepareToPlay];
[theAudio play];

这无法播放音频。然而,巧合的是,当我紧接着显示 UIAlertView 时,我可以听到音频剪辑播放的前 2 秒。也就是说,我的应用程序加载后,我听到两秒钟的音频,然后弹出警报并切断音频。

所以看起来 AVAudioPlayer 代码似乎有些工作。

对发生的事情以及我如何简单地播放音频有任何想法吗?

最佳答案

问题是您正在使用 ARC,因此当变量超出范围时,AVAudioPlayer 将被释放。您必须将 theAudio 变量声明为实例变量,并在 viewDidLoad 中分配它。所以,在你的 .h 文件中:

@interface MyViewController : UIViewController {
AVAudioPlayer *theAudio;
...
}
...
@end

然后,从您在 viewDidLoad 中分配 theAudio 的行中删除 AVAudioPlayer *。这将导致您的 View Controller 保留音频播放器,从而防止播放器在播放前被释放。

关于iphone - AVAudioPlayer 不加载声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8705119/

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