gpt4 book ai didi

ios - iOS 7-捕获内部库错误异常

转载 作者:行者123 更新时间:2023-12-03 16:12:54 24 4
gpt4 key购买 nike

我正在使用AVAudioPlayer(在计算器应用程序中)在点击按钮时运行音频文件。我在iOS7上面临的问题是,每当真正快速点击按钮时,音频播放器的播放方法就会在AVAudioPlayer中导致内部错误。这是代码部分

@try
{
if(self.allAudioPlayers == nil)
{
[self initializePlayer];
}

AVAudioPlayer *player = [self grabPlayer];

if(player != nil)
{
NSLog(@"Playing....");
[player play]; //Crashing Here
}
else
{
NSLog(@"Player nil");
}
}
@catch (NSException *exception)
{
NSLog(@"playCalculatorTickSound Exception: %@", [exception description]);
NSLog(@"Call Stack: %@", [exception callStackSymbols]);
}

一旦收到此问题ResolveOpageRef,现在我收到的问题是_platform_memmov $ VARIANT $ CortexA8。

这是调用堆栈的另一张图片(它从不相同,并且在某种程度上有所不同)

我的异常处理代码没有捕获异常,因为它是内部错误。无论如何,有没有抓住这个机会,使应用程序不会崩溃?

我正在使用线程来调用此方法。我不确定,但可能是多个线程试图同时读取文件,并且[播放器播放]正在处理线程同步,但未能这样做。

提前致谢

最佳答案

感谢大家的意见。我认为问题已经解决。这是更新的代码。似乎线程是主要问题。 AVAudioPlayer的播放方法不能同时很好地处理多个线程。我不知道它在内部如何工作,但我认为它正在管理某种队列(从调用堆栈中判断)。我在主线程上执行了它,现在工作正常。

 @try
{
if(self.allAudioPlayers == nil)
{
[self initializePlayer];
}

AVAudioPlayer *player = [self grabPlayer];

if(player != nil)
{
NSLog(@"Playing....");

dispatch_async(dispatch_get_main_queue(), ^{

[player play];
});
}
else
{
NSLog(@"Player nil");
}
}
@catch (NSException *exception)
{
NSLog(@"playCalculatorTickSound Exception: %@", [exception description]);
NSLog(@"Call Stack: %@", [exception callStackSymbols]);
}

另外,由于有了 Any suggestions on how to handle this crash in CGImageDestinationFinalize?,我可以将我的注意力转移到线程问题上。

关于ios - iOS 7-捕获内部库错误异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20856032/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com