音频文件无法在iOS6的模拟器上播放

时间:2013-09-17 02:06:29

标签: iphone ios

我有以下代码,找到了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];
    }
}

1 个答案:

答案 0 :(得分:0)

您需要强烈引用AVAudioPlayer。因为您正在使用ARC,AVAudioPlayerplayNotificationSound完成执行后将无法存在。并且对它的字符串引用可以阻止它被释放。

只需添加@property (strong, nonatomic) AVAudioPlayer *audioPlayer;并使用self.audioPlayer,而不是声明新的AVAudioPlayer变量。