0

iPhone初心者です。その目的のために 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ファイルを返しますが、audioplayerがnullを返すがmp3ファイルを返さないため、なぜurlがAVAudioPlayerに渡されないのですか?AVAudioPlayerにどのコードを記述しますか?提案とソースコードを教えてください....

4

2 に答える 2

0

-43はファイルが見つかりませんエラーです。plist内の相対ファイルパスが作業ディレクトリから見つかることを確認してください。または、NSBundleの多くのリソース検索方法の1つを使用して、サウンドファイルを直接検索すると、既存の絶対パスが取得されます。

于 2012-07-16T09:49:43.390 に答える
0
path=[[NSBundle mainBundle] pathForResource:@"Animalfile" ofType:@"plist"];

パスは、plistではなく単一のファイルである必要があります

パスに1つの値を与えるようにしてください

例:

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