質問

たい再生、mp3ではなくされた、圧縮解除されたファイルを使用RemoteIO/AudioUnit.使用された、圧縮解除されたファイルも用途にも多くのディスクスペース(30MB vs3Mバイトのためのmp3).

することも可能ですか?その場合、可能です少しのコードheadstart?

ありがとう!

役に立ちましたか?

解決

はい、それは可能です。しかし、それは、複数のオーディオAPIを使用して複数のスレッドを必要とします。

によりオーディオユニットのバッファコールバックスレッドのリアルタイム制約には、オーディオユニットのコールバックの外生のPCMサンプルに圧縮ファイルの変換を行う必要があります。あなたは、オーディオユニットのコールバックの外側の非圧縮サンプルへの変換を行うために拡張オーディオファイルサービスやAVAssetReaderを使用することができます。ただし、一度にファイル全体を解凍する必要はありません。第二の留分の短い非圧縮バッファはおそらく限り、あなたは先にオーディオユニットのコールバックバッファ消費率の十分にそれを埋めておくよう、行います。これはおそらく、リングバッファまたは円形のFIFOに、バッファの消費量を監視し、それに応じて過不足のないオーディオを解凍別タイマー駆動スレッドで行うことができます。

あなたがで終わるだろうことが、よりカスタマイズ性と、オーディオキューAPI層の書き換えのようになります。

他のヒント

どのよう低レベルになりたいのでしょう。があAudioHardware API:

err = AudioDeviceAddIOProc(deviceID, ioProc, self);

やioProcのバッファー自身で、ハードウェア変更に対応してリアルタイムでスレッドのその他の低レベルのもの。

いという既に復号のmp3データAudioConverterとは知っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top