我有以下代码,找到了sound_file。我也没有错。音频文件将添加到捆绑包中。但我在iOS模拟器上没有输出音频。
- (void)playNotificationSound
{
NSString *sound_file;
AVAudioPlayer * audioPlayer;
sound_file = [[NSBundle mainBundle] pathForResource:@"onebell" ofType:@"caf"];
if (sound_file){
NSURL *url = [[NSURL alloc] initFileURLWithPath:sound_file];
NSError *error;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
//audioPlayer.delegate = self;
audioPlayer.volume = 1.0f;
[audioPlayer prepareToPlay];
[audioPlayer play];
}
}
答案 0 :(得分:0)
您需要强烈引用AVAudioPlayer
。因为您正在使用ARC,AVAudioPlayer
在playNotificationSound
完成执行后将无法存在。并且对它的字符串引用可以阻止它被释放。
只需添加@property (strong, nonatomic) AVAudioPlayer *audioPlayer;
并使用self.audioPlayer
,而不是声明新的AVAudioPlayer
变量。