Iphone iOS 5.0 AVAudioPlayer加载音频剪辑时出错:操作无法’;不可能完成。(OSStatus错误-50。)

Iphone iOS 5.0 AVAudioPlayer加载音频剪辑时出错:操作无法’;不可能完成。(OSStatus错误-50。),iphone,ios,ios5,avaudioplayer,Iphone,Ios,Ios5,Avaudioplayer,所以我试着在iPhone上测试音频播放器,然后我离开了特洛伊·布兰特的iOS书。我有核心音频、核心基础、AudioToobox和Avoundation框架添加到我的项目中。我得到的错误消息在主题字段中。我读了20页的谷歌搜索结果才求助于这里/唉。如果你能帮忙,谢谢你。这是我的代码,几乎一字不差地出自他的书: NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@"Yonah" ofType:@"caf"]; NSLog

所以我试着在iPhone上测试音频播放器,然后我离开了特洛伊·布兰特的iOS书。我有核心音频、核心基础、AudioToobox和Avoundation框架添加到我的项目中。我得到的错误消息在主题字段中。我读了20页的谷歌搜索结果才求助于这里/唉。如果你能帮忙,谢谢你。这是我的代码,几乎一字不差地出自他的书:

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];


对于后者,我得到了一个奇怪的错误,比主题中的错误更奇怪,但我在谷歌上搜索了这个错误,然后我将操作系统输入设备从网络摄像头改为内置麦克风,猜猜看,它在fileURLWithPath方法下工作。我会的。该死。

试着用如下方式读取音频文件:

audioPlayer_ = [[AVAudioPlayer alloc] initWithContentsOfURL:
[NSURL fileURLWithPath:[NSString stringWithString:soundFilePath_]] 
error:&error];

试试这个-将你的url转换成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];
}`

.caf应该在iOS5中得到支持,但也许你应该试试mp3之类的东西。你记得在项目中导入Jonah.caf吗?另外:为什么要设置代理?您需要它吗?如果只调用[audioPlayer prepareToPlay],是否会出现相同的错误;而不是[音频播放器播放];?
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];
}`