我使用 iPhone SDK 创建了一个示例应用程序,它使用 AudioToolBox 框架中的 ExtAudioFileOpenURL。我的应用程序文件夹中有一个 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 是有效的。