AudioToolBox フレームワークの ExtAudioFileOpenURL を使用する iPhone SDK を使用して、サンプル アプリケーションを作成しました。アプリのドキュメント フォルダーに test.mp3 オーディオ ファイルがあります。この API を使用してこのオーディオ ファイルを開こうとすると、EXEC_BAD_ACCESS を受け取りました。理由がわかりませんでした。
コード スニペットを次に示します。
NSArray *arr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *str = [arr objectAtIndex:0];
NSString * temp = [NSString stringWithFormat:@"%@/test.mp3", str];
CFURLRef url = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, (CFStringRef)temp, kCFURLPOSIXPathStyle, false);
//AudioFileID fileID ;
//AudioFileOpenURL(url, 0X01, kAudioFileCAFType, &fileID);
ExtAudioFileRef audioFileRef = NULL;
ExtAudioFileOpenURL(url, &audioFileRef);
ExtAudioFileOpenURL を試すと、EXC_BAD_ACCESS が返されます。無効な URL が渡されたためだと思いました。しかし、AudioFileOpenURL を試してみると、URL が有効であることを確認して問題なく動作しました。