AVAudioPlayer在播放时崩溃

时间:2014-03-06 09:24:44

标签: ios objective-c audio avaudioplayer

第一次处理音频。可能是我遗失了一些事情请指导

我添加了AVFoundation框架。添加了#import

并在viewDidLoad中添加了它。

NSString* docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString* audioPath = [docPath stringByAppendingPathComponent:@"001.mp3"];
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:audioPath];

if (!fileExists) {
    NSLog(@"Audio File not exist!");
}else{

    NSError *error;
    NSURL *url = [[NSURL alloc] initFileURLWithPath:audioPath];
    NSData *audioData = [NSData dataWithContentsOfURL:url];

    self.audioPlayer = [AVAudioPlayer alloc];

    // It crashes at this line
    self.audioPlayer = [self.audioPlayer initWithData:audioData error:&error];

    NSLog(@"%@",self.audioPlayer);



}

3 个答案:

答案 0 :(得分:4)

我使用通用断点进行任何异常。由于没有细节,这个破发点玩家正在崩溃。刚删除该断点,现在工作正常。谢谢大家。

答案 1 :(得分:0)

试试这个对我有用。还要检查是否播放了音频文件。

NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/001.caf", [[NSBundle mainBundle] resourcePath]]];

    NSError *error;
    audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
    audioPlayer.numberOfLoops = -1;

    if (audioPlayer == nil)
        NSLog([error description]);             
    else 
        [audioPlayer play];

答案 2 :(得分:0)

确保您必须为AVAudioPlayer实例创建强大的属性。要么使它成为全球性的,要么建立强大的财产。

//Global iVAR

AVAudioPlayer *avPlayer;

OR

//Property

@property(strong, nonatomic) AVAudioPlayer *avPlayer;

那么你应该能够播放音频。