2010-11-08 9 views
0

J'écris un séquenceur de beatbox pour l'iphone en utilisant CoreAudio.Limitation de lecture de CoreAudio sur l'iPhone

J'ai 4 sons qui jouent sur un motif. J'ai un AUGraph avec IORemote et MultiChannelMixer ensemble. Les 4 entrées du mixeur ont un rappel qui lit les buffers sonores qui y sont attachés. Cela fonctionne bien tant que le motif du séquenceur est simple et ne joue pas trop de sons en même temps. Si j'allume plusieurs sons en même temps, des pépins apparaissent et il semble que le processeur soit surchargé (j'utilise un iPhone 1ère génération pour tester).

I a l'aide de fichiers sonores CAF (16bits, 44.1kHz) et un format audio canonique:

size_t bytesPerSample = sizeof (AudioUnitSampleType); 
stereoStreamFormat.mFormatID   = kAudioFormatLinearPCM; 
stereoStreamFormat.mFormatFlags  = kAudioFormatFlagsAudioUnitCanonical; 
stereoStreamFormat.mBytesPerPacket = bytesPerSample; 
stereoStreamFormat.mFramesPerPacket = 1; 
stereoStreamFormat.mBytesPerFrame  = bytesPerSample; 
stereoStreamFormat.mChannelsPerFrame = 2;      
stereoStreamFormat.mBitsPerChannel = 8 * bytesPerSample; 
stereoStreamFormat.mSampleRate  = 44100.0; 

Y at-il quelque chose que je suis absent ou que je sache qui pourrait améliorer mon programme? Ou suis-je frapper la limitation du processeur d'un iPhone 1ère génération?

Merci beaucoup.

Pascal

Répondre

0

Eh bien, la 1ère génération iPhone est un peu lent, mais il devrait certainement être en mesure de gérer cela. Je suppose que la raison pour laquelle vous faites du pépin est parce que AudioUnitSampleType est de 4 octets, bien que je ne sois pas sûr si c'est la même chose pour l'iPhone que sur le bureau. Essayez d'utiliser l'audio 16 bits à la place et voyez si cela n'aide pas.

+0

Merci. Je vais essayer ca. –