use*_*946 2 iphone objective-c avfoundation ipad ios
无论出于何种原因,我都无法加载声音AVAudioPlayer
.我在我的iPad设备上测试它.
我的代码相当直接,没什么特别的.导入框架,实现委托.在我的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];
Run Code Online (Sandbox Code Playgroud)
这无法播放音频.然而,巧合的是,当我UIAlertView
立即显示之后,我可以听到音频片段播放的前2秒.也就是说,我的应用程序加载,我听到两秒音频,然后警报弹出并切断音频.
因此看起来AVAudioPlayer
代码似乎有点起作用.
关于最新情况以及如何简单地播放音频的任何想法?
Ale*_*hol 11
问题是您正在使用ARC,因此当变量超出范围时,AVAudioPlayer将被释放.您必须将theAudio
变量声明为实例变量,并在viewDidLoad中指定它.所以,在你的.h文件中:
@interface MyViewController : UIViewController {
AVAudioPlayer *theAudio;
...
}
...
@end
Run Code Online (Sandbox Code Playgroud)
然后,AVAudioPlayer *
从theAudio
viewDidLoad中指定的行中删除.这将导致视图控制器保留音频播放器,从而防止播放器在播放前被释放.
归档时间: |
|
查看次数: |
1263 次 |
最近记录: |