2010-11-19 15 views
0

Kullanıcı tarafından belirtilen ses dosyalarını karıştırmak ve çalmak için Apple'ın MixerHostAudio sınıfını kullanmaya çalışıyorum.Ses dosyalarını çalmak için Apple'ın MixerHostAudio sınıfını kullanırken sorun

sınıf dosyaları burada bulunabilir: http://developer.apple.com/library/ios/#samplecode/MixerHost/Listings/Classes_MixerHostAudio_h.html

MixerHostAudio sınıf kullanıcı tarafından belirtilen dosyalarını oynatmak yapmak için, ben dosyaların NSURL ile sınıfını örneği. Bu ilk örnekleme için harika çalışıyor, ancak eski MixerHostAudio sınıfını serbest bırakarak ve sesler çalmaya başladıktan sonra "EXC_BAD_ACCESS" saniye ile yeni bir uygulama çökmesini oynayarak değiştirilen ses dosyalarını değiştirmek istediğimde işe yarıyor.

Bazı hata ayıklamalarını yaptıktan sonra, soundStructPointerArray öğesinin AudioUnitSampleType (audioDataLeft ve audioDataRight) öğesinin sıfır olduğu inputRenderCallback'de hata oluştuğunu fark ettim.

Bu hata oluştu kod parçasıdır: Beni bir hata almadan MixerHostAudio birden çok örneğini örneğini için

for (UInt32 frameNumber = 0; frameNumber < inNumberFrames; ++frameNumber) { 
    outSamplesChannelLeft[frameNumber]     = dataInLeft[sampleNumber]; 
    if (isStereo) outSamplesChannelRight[frameNumber] = dataInRight[sampleNumber]; 

yine de var mı ??

Her türlü yardım büyük beğeni topluyor.

cevap

0

Bu kod, geri aramadaki tüm verileri sıfırlamıyor gibi görünüyor. Bu kaynak koduna aşina değilim, ancak devam etmeli ve tüm bellek ayırmalarının doğru şekilde ele alındığından ve eskiyen işaretçiler olmadığından emin olmalısınız. Özellikle olmaması gerektiğinde etrafta asılı duran globals ya da statik değişkenleri arayın, çünkü çökmeden önce ikinci bir tane başlattığınızı söylüyorsunuz.

İlgili konular