如何解决“硬件使用中”问题(错误代码:'hwiu')?

时间:2011-02-01 07:41:30

标签: ios audiounit m4a caf

我创建了一个包含recording with AudioUnitConversionAudio EditingMerging部分的iPhone应用。我做了除Conversion之外的所有事情。此应用仅适用于iOS 4或更高版本。

我尝试将.caf转换为.m4a文件。但我收到kAudioConverterErr_HardwareInUse错误。然后我尝试将.caf文件转换为.wav文件。然后.wav文件到.m4a文件。但是我遇到了同样的问题。

我不清楚这个问题。在Apple documentation中,他们提到了;

“如果底层硬件编解码器变得不可用,则从AudioConverterFillComplexBuffer函数返回,可能是由于音频中断。

收到此错误后,您的应用程序必须停止调用AudioConverterFillComplexBuffer。您可以检查kAudioConverterPropertyCanResumeFromInterruption属性的值,以确定您使用的转换器是否可以在中断后继续处理。如果是,则等待来自音频会话服务的中断结束呼叫,重新激活音频会话,最后恢复使用编解码器。

如果转换器在中断后无法恢复处理,那么在中断时您必须放弃转换,重新实例化转换器,然后再次执行转换。“

请帮我解决。

1 个答案:

答案 0 :(得分:0)

我刚刚解决了这个问题。 就我而言,我在应用程序中有MPMoviePlayerController,音频队列播放器,录音机。

当内容结束时,电影播放器​​需要手动调用“停止”方法。 否则播放状态锁定在MPMoviePlaybackStatePlaying。然后,当我尝试时,我不能再播放MP3并获得“hwiu”。但PCM仍然有效。

也许是因为压缩音频(MP3,AAC,...)由独特的硬件设备处理。如果您使用不同的技术(MPMoviePlayerController和音频队列服务)来播放压缩音频,则需要在完成播放后释放一次设备,因为它们都共享同一设备。