Une question similaire a été posée .. mais je voulais la rendre plus spécifique à l’audio de base .. car certains d’entre nous ont peut-être remarqué que l’audio de base a très peu de marge d’erreur.
Comme l’explique la réponse à cette question, __cxa_throw est une exception non gérée par C ++, qui peut être ignorée (ce problème semble être nouveau avec Xcode 4.5.1 .. Je ne l’ai jamais vu auparavant)
pouvons-nous dire la même chose à propos de l’audio de base? Ce qui me rend nerveux, c’est que cela a à voir avec le formatage de l’audio .. dont dépend en grande partie mon code:
J’essaie de convertir un fichier AAC en lPCM ..
format de sortie:
// 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;
format d’entrée:
mSampleRate = 44100 mFormatID = 1633772320 (AAC) mFormatFlags = 0 mBytesPerPacket = 0 mFramesPerPacket = 1024 mBytesPerFrame = 0 mChannelsPerFrame = 2 mBitsPerChannel = 0
variables d’instance:
game.h
@interface Game : NSObject { AudioStreamer *streamer; } @property (nonatomic, assign) AudioStreamBasicDescription mediaItemInputFormat;
audioStreamer.h
@interface AudioStreamer : NSObject { @public AudioStreamBasicDescription PCMoutputFormat; AudioConverterRef audioConverter; }
mise en place de la commande converter dans game.m (c’est ici que l’exception __cxa_throw non gérée est levée!)
// set up converter OSStatus result = AudioConverterNew(&_mediaItemInputFormat, &streamer->PCMoutputFormat, &streamer->audioConverter);
Si l’exception ne met pas fin à l’application, un autre élément de code la gère. Si vous faites confiance à quelque code que ce soit, alors vous n’avez rien à craindre.