6

有人问了一个类似的问题..但我想让它更具体到核心音频..因为我们中的一些人可能已经注意到核心音频几乎没有出错的余地。

正如上述问题的答案所解释的,__cxa_throw 是一个 C++未处理异常,可以忽略(这个问题似乎是 Xcode 4.5.1 的新问题。我以前也从未见过)

我们可以对核心音频说同样的话吗?让我紧张的是,它与音频的格式有关。我的很多代码都依赖于:

我正在尝试将 AAC 文件转换为 lPCM ..

输出格式:

// set up the PCM output format for conversion
streamer->PCMoutputFormat.mSampleRate = 44100.0;
streamer->PCMoutputFormat.mFormatID = kAudioFormatLinearPCM;
streamer->PCMoutputFormat.mFormatFlags = kAudioFormatFlagsCanonical;
streamer->PCMoutputFormat.mBytesPerPacket = 4;
streamer->PCMoutputFormat.mFramesPerPacket = 1;
streamer->PCMoutputFormat.mBytesPerFrame = 4;
streamer->PCMoutputFormat.mChannelsPerFrame = 2;
streamer->PCMoutputFormat.mBitsPerChannel = 16;

输入格式:

mSampleRate = 44100
mFormatID = 1633772320 (AAC)
mFormatFlags = 0
mBytesPerPacket = 0 
mFramesPerPacket = 1024
mBytesPerFrame = 0
mChannelsPerFrame = 2
mBitsPerChannel = 0

实例变量:

游戏.h

@interface Game : NSObject <GKSessionDelegate>
{
    AudioStreamer *streamer;
}

@property (nonatomic, assign) AudioStreamBasicDescription mediaItemInputFormat;

audioStreamer.h

@interface AudioStreamer : NSObject
{
    @public
        AudioStreamBasicDescription PCMoutputFormat;
        AudioConverterRef audioConverter;
}

在 game.m 中设置转换器命令(这是抛出 __cxa_throw 未处理异常的地方!)

// set up converter
OSStatus result = AudioConverterNew(&_mediaItemInputFormat,
                                    &streamer->PCMoutputFormat,
                                    &streamer->audioConverter);
4

1 回答 1

5

如果异常没有终止应用程序,那么其他一些代码会处理它。如果你相信任何一段代码,那么就没有什么好担心的了。

于 2012-11-27T15:32:55.957 回答