Iphone iOS 5.0 AVAudioPlayer加载音频剪辑时出错:操作无法’;不可能完成。(OSStatus错误-50。)
所以我试着在iPhone上测试音频播放器,然后我离开了特洛伊·布兰特的iOS书。我有核心音频、核心基础、AudioToobox和Avoundation框架添加到我的项目中。我得到的错误消息在主题字段中。我读了20页的谷歌搜索结果才求助于这里/唉。如果你能帮忙,谢谢你。这是我的代码,几乎一字不差地出自他的书: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
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];
}`