对于我的iPhone应用程序,我正在尝试使用Apple的MixerHostAudio class来混合和播放用户指定的音频文件。
为了使MixerHostAudio类播放用户指定的文件,我使用文件的NSURL实例化了该类。这对于第一个实例化非常有用,但是,当我想通过释放旧的MixerHostAudio类并分配一个新的音频文件来更改播放的音频文件时,实例化后几秒钟EXC_BAD_ACCESS
会使应用程序崩溃。
进行一些调试之后,我注意到该错误发生在inputRenderCallback
中,其中AudioUnitSampleType
的audioDataLeft
(audioDataRight
和soundStructPointerArray
)为nil。
这是发生错误的代码的一部分:
for (UInt32 frameNumber = 0; frameNumber < inNumberFrames; ++frameNumber) {
outSamplesChannelLeft[frameNumber] = dataInLeft[sampleNumber];
if (isStereo) outSamplesChannelRight[frameNumber] = dataInRight[sampleNumber];
任何帮助是极大的赞赏!
最佳答案
在释放stopAUGraph
实例之前,您是否调用过MixerHostAudio
?在我看来,dealloc
方法不会自动将其停止。那么释放/释放各种内存位置后将调用回调,这将导致严重的访问崩溃。
关于iphone - 使用Apple的MixerHostAudio示例类时遇到问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4170922/