iphone – iOS 5.0 AVAudioPlayer加载音频片段时出错:无法完成操作. (OSStatus错误-50.)

所以我试图测试iPhone上的音频播放器,然后我关闭了Troy Brant的iOS书.我在我的项目中添加了Core Audio,Core Foundation,AudioToolbox和AVFoundation框架.我得到的错误信息是在主题字段中.在阅读此处之前,我读了20页Google搜索结果! /叹.谢谢,如果你能提供帮助.这是我的代码,几乎是他的书中逐字逐句:

NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@"Yonah" ofType:@"caf"];
NSLog(@"%@", soundFilePath);
NSURL *fileURL = [NSURL URLWithString:soundFilePath];
NSError *error;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:&error];

if (!error)
{
    audioPlayer.delegate = self;
    //audioPlayer.numberOfLoops = -1;
    [audioPlayer play];
}
else
{
    NSLog(@"Error loading audio clip: %@", [error localizedDescription]);
}    

编辑:神圣的神道.我弄清楚它是什么.我变了

NSURL *fileURL = [NSURL URLWithString:soundFilePath];

NSURL *fileURL = [NSURL fileURLWithPath:soundFilePath];

到了后者,我得到了一个奇怪的错误,比主题中的那个更奇怪但是我用Google搜索并且我将我的操作系统输入设备从我的网络摄像头更改为我的内置麦克风并猜测它是什么,它在fileURLWithPath方法下工作.我将会.诅咒.

最佳答案 尝试这个 – 将您的网址转换为NSdata

NSString* resourcePath = self.audioStr; //your url
 NSData *_objectData = [NSData dataWithContentsOfURL:[NSURL URLWithString:resourcePath]];
 NSError *error = [[NSError alloc] init];

NSLog(@"url is %@",resourcePath);

audioPlayer = [[AVAudioPlayer alloc] initWithData:_objectData  error:&error];
audioPlayer.numberOfLoops = 0;

if (error)
{
    NSLog(@"Error in audioPlayer: %@",
          [error localizedDescription]);
} else {
    audioPlayer.delegate = self;
    [audioPlayer prepareToPlay];
}`
点赞