我是iPhone的初学者。我想播放audio.for那个目的我已经使用了AVAudioPlayer ..但是该对象返回null值..并且还给出了运行时错误。操作无法完成。 (OSStatus错误-43。)
这是我使用的代码
-(IBAction)sound
{
NSError *error;
int currentsound;
path=[[NSBundle mainBundle] pathForResource:@"Animalfile" ofType:@"plist"];
dict=[NSDictionary dictionaryWithContentsOfFile:path];
animalaudio=[dict valueForKey:@"audio"];
NSLog(@"print:%@",dict);
NSLog(@"printanimal%@",animalaudio);
audiolist=[animalaudio objectAtIndex:currentsound];
NSLog(@"audiolist:%@",audiolist);
url=[NSURL fileURLWithPath:audiolist];
NSLog(@"url:%@",url);
audioplayer=[[AVAudioPlayer alloc]initWithContentsOfURL:url error:&error];
NSLog(@"audioplayer:%@",audioplayer);
if( audioplayer == nil ){
NSLog(@"Failed with reason: %@", [error localizedDescription]);
}
else{
[audioplayer play];
}
}
在那个url中也返回mp3文件,但是为什么url没有传入AVAudioPlayer,因为audioplayer返回null而不是返回mp3文件.so,我在AVAudioPlayer中编写哪些代码?给出任何建议和源代码.... / p>
答案 0 :(得分:0)
path=[[NSBundle mainBundle] pathForResource:@"Animalfile" ofType:@"plist"];
路径必须是单个文件而不是plist
尝试给路径一个值
示例:
path = [[NSString alloc] initWithFormat:[[NSBundle mainBundle] pathForResource:@"firstTrack" ofType:@"mp3"]]
答案 1 :(得分:0)
-43是找不到文件错误 检查plist中的相对文件路径是否可以从工作目录中找到。 或者更好的是,使用NSBundle的众多资源查找方法之一直接找到您的声音文件,然后您将获得一个现有的绝对路径。