ios - AVAudioPlayer 在 Debug模式下抛出断点

每次我加载应用程序时它都会停止,就好像我在这一行设置了一个断点:

self.audioPlayer = 
 [[[AVAudioPlayer alloc] initWithData:[dataPersister loadData:self.fileName] 
                                error:&outError] autorelease];

这条线上方或附近没有任何断点。只有当我在 Debug模式下运行应用程序并且断点后没有崩溃时才会发生这种情况。当我点击“继续执行程序”时,应用程序没有任何反应。

这是loadData方法,用initWithData调用:

-(NSData*)loadData:(NSString*)fileName
{
    NSString *dataPath = [self.path stringByAppendingPathComponent:fileName];
    dataPath = [dataPath stringByStandardizingPath];
    NSData *data = [[[NSData alloc] initWithContentsOfFile:dataPath]autorelease ];
    return data;
}

loadData 函数似乎工作正常。请求的 mp3 文件在断点后加载和播放没有任何问题。

你知道我做错了什么吗?

编辑: 当它在断点处停止时,我运行了回溯。这是输出:

(lldb) bt
* thread #1: tid = 0x1c03, 0x30df1724 libc++abi.dylib`__cxa_throw, stop reason = breakpoint 1.2
    frame #0: 0x30df1724 libc++abi.dylib`__cxa_throw
    frame #1: 0x36403a24 AudioToolbox`ID3ParserHandle::ID3ParserHandle(void*, long (*)(void*, unsigned long, unsigned long, unsigned long, void**, unsigned long*)) + 452
    frame #2: 0x36403b0e AudioToolbox`ID3ParserOpen + 142
    frame #3: 0x3635bd16 AudioToolbox`MPEGAudioFile::ParseID3Tags() + 58
    frame #4: 0x3635b9aa AudioToolbox`MPEGAudioFile::ParseAudioFile() + 26
    frame #5: 0x3631723e AudioToolbox`AudioFileObject::DoOpenWithCallbacks(void*, long (*)(void*, long long, unsigned long, void*, unsigned long*), long (*)(void*, long long, unsigned long, void const*, unsigned long*), long long (*)(void*), long (*)(void*, long long)) + 166
    frame #6: 0x36316480 AudioToolbox`AudioFileOpenWithCallbacks + 612
    frame #7: 0x31f4c1ec AVFoundation`-[AVAudioPlayer initWithData:error:] + 120

“解决方案”: 事实证明,如果我为所有异常禁用异常断点并且只对 Objective-C 异常使用断点,问题就会消失。但是并没有解决分配AVAudioPlayer抛出C++异常的问题。

最佳答案

添加您的异常断点并将异常类型从“All”编辑为“Objective-C exceptions”

AudioToolbox 中的某些类会引发常规 C++ 异常。您可以通过这种方式过滤掉它们。

https://stackoverflow.com/questions/9683547/

相关文章:

ios - 在单行 UILabel 旁边居中 NSTextAttachment 图像

ios - 错误 : CUICatalog: Invalid asset name supplied

objective-c - 声明的属性是否需要相应的实例变量?

iphone - Xcode 4.5 Storyboard 'Exit'

iphone - 关闭呈现的 View Controller

iphone - 我什么时候应该在 -(void)viewDidUnload 而不是 -deallo

objective-c - 如何获取 NSString 的前三个字符?

iphone - Objective-C/Cocoa Touch 中的 HTML 字符解码

ios - 检查 AVPlayer 的播放状态

objective-c - iOS - 如何以编程方式设置 UISwitch