6

同様の質問がされています..しかし、私はそれをよりコアオーディオに特化したいと思いました..コアオーディオにはエラーの余地がほとんどないことに気付いた人もいるかもしれません.

上記の質問への回答が説明しているように、 __cxa_throw は C++ の unhandled exceptionであり、無視できます (この問題は 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

インスタンス変数:

game.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 に答える