2012-07-16 162 views
0

我是iPhone的初学者。我想播放audio.for为此目的我已经使用AVAudioPlayer ..但该对象返回空值..也给运行时错误的操作无法完成。 (OSStatus错误-43)。如何解决运行时间错误的操作无法完成。 (OSStatus错误-43。)?

这是我在URL中使用

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

也回归了MP3文件,但为什么不URL在AVAudioPlayer通过,因为audioplayer的返回空,但不能退货的mp3文件中的代码。所以,我在写AVAudioPlayer哪个代码?给出任何建议和源代码....

回答

0
path=[[NSBundle mainBundle] pathForResource:@"Animalfile" ofType:@"plist"]; 

路径必须是一个文件不是一个的plist

试举路径一个值

例子:

path = [[NSString alloc] initWithFormat:[[NSBundle mainBundle] pathForResource:@"firstTrack" ofType:@"mp3"]] 
0

-43是找不到错误 检查文件,在你的plist相对文件路径可以从工作目录中找到。 或者更好的是,使用NSBundle的许多资源查找方法之一直接找到您的声音文件,然后您将获得一个现有的绝对路径。

相关问题