2

AudioUnit / RemoteIO API を使用して、ストリーミング オーディオの再生を実現しています。a-law や u-law などの他の形式は問題なく動作しています。

a-law 形式の設定方法の例を次に示します。

    audioFormat.mSampleRate       = format->nSamplesPerSec;
    audioFormat.mFormatID         = kAudioFormatALaw;
    audioFormat.mFormatFlags      = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked;
    audioFormat.mFramesPerPacket  = 1;
    audioFormat.mChannelsPerFrame = format->nChannels;
    audioFormat.mBitsPerChannel   = format->wBitsPerSample;
    audioFormat.mBytesPerFrame    = (format->wBitsPerSample * format->nChannels) / 8;
    audioFormat.mBytesPerPacket   = audioFormat.mBytesPerFrame * audioFormat.mFramesPerPacket;

私が使用しようとしている形式は、ここで説明されている MS ADPCM です。

私が理解していることから、この場合、パケットあたりのフレーム数を何らかの方法で計算する必要があります。私が持っている唯一の追加情報は、nBlockAlign フィールドです。これは、マルチメディア ウィキが「IMA でエンコードされたデータのブロックのサイズ」と説明しています。

私はこれで途方に暮れています。

パケットあたりのフレーム数はどのように計算されますか? nBlockAlign のブロック サイズは関係しますか?

kAudioFormatDVIIntelIMA と kAudioFormatAppleIMA4 がフォーマットとしてリストされています。iOS はこの種の ADPCM をサポートしていますか?

4

0 に答える 0