0

我是 iPhone 的初学者。我想播放音频。为此我使用了 AVAudioPlayer.. 但该对象返回空值.. 并且还给出了操作无法完成的运行时错误。(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 file.so,我在 AVAudioPlayer 中编写的代码是什么?给出任何建议和源代码....

4

2 回答 2

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

路径必须是单个文件而不是 plist

尝试给路径一个值

例子:

path = [[NSString alloc] initWithFormat:[[NSBundle mainBundle] pathForResource:@"firstTrack" ofType:@"mp3"]]
于 2012-07-16T09:43:38.993 回答
0

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

于 2012-07-16T09:49:43.390 回答