如何解决运行时错误无法完成操作。 (OSStatus错误-43。)?

时间:2012-07-16 09:09:27

标签: objective-c

我是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>

2 个答案:

答案 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的众多资源查找方法之一直接找到您的声音文件,然后您将获得一个现有的绝对路径。