我创建了一个包含recording with AudioUnit
,Conversion
,Audio Editing
和Merging
部分的iPhone应用。我做了除Conversion
之外的所有事情。此应用仅适用于iOS 4或更高版本。
我尝试将.caf转换为.m4a文件。但我收到kAudioConverterErr_HardwareInUse
错误。然后我尝试将.caf文件转换为.wav文件。然后.wav文件到.m4a文件。但是我遇到了同样的问题。
我不清楚这个问题。在Apple documentation中,他们提到了;
“如果底层硬件编解码器变得不可用,则从AudioConverterFillComplexBuffer
函数返回,可能是由于音频中断。
收到此错误后,您的应用程序必须停止调用AudioConverterFillComplexBuffer
。您可以检查kAudioConverterPropertyCanResumeFromInterruption
属性的值,以确定您使用的转换器是否可以在中断后继续处理。如果是,则等待来自音频会话服务的中断结束呼叫,重新激活音频会话,最后恢复使用编解码器。
如果转换器在中断后无法恢复处理,那么在中断时您必须放弃转换,重新实例化转换器,然后再次执行转换。“
请帮我解决。
答案 0 :(得分:0)
我刚刚解决了这个问题。 就我而言,我在应用程序中有MPMoviePlayerController,音频队列播放器,录音机。
当内容结束时,电影播放器需要手动调用“停止”方法。 否则播放状态锁定在MPMoviePlaybackStatePlaying。然后,当我尝试时,我不能再播放MP3并获得“hwiu”。但PCM仍然有效。
也许是因为压缩音频(MP3,AAC,...)由独特的硬件设备处理。如果您使用不同的技术(MPMoviePlayerController和音频队列服务)来播放压缩音频,则需要在完成播放后释放一次设备,因为它们都共享同一设备。