にゃんとにゃく
にゃんとにゃく、形ができてきたかにゃ。
AAC ADTS形式ファイルを再生する場合は、下記見たいにゃ感じにゃで。
MP3形式にゃったらscp.SetType( "MP3" );にゃにするとできるって感じですにゃ。
// AAC ADTSの再生 int main() { // インスタンスを取得 Cat_SoundDecodeCreator& sdc = Cat_SoundDecodeCreator::GetInstance(); // AAC ADTS -> PCM_RAWのデコーダを作成 Cat_SoundCreateParam scp; scp.SetType( "AAC_ADTS" ); scp.SetDestinationType( "PCM_RAW" ); Cat_SoundDecoder* sd = sdc.CreateDecoder( &scp ); // オーディオデバイスを作成してデコーダに繋げる Cat_Stream* pStreamAudioDevice = new Cat_StreamAudioDevice( 0, Cat_StreamAudioDevice::SAMPLE_44100, Cat_StreamAudioDevice::STEREO ); sd->AddChain( Cat_SoundDecoder::AUDIO, pStreamAudioDevice ); // 再生する // pStreamSource sd pStreamAudioDevice // (file:AAC ADTS) -> (AAC ADTS:PCM_RAW) -> (PCM_RAW:AudioDevice) Cat_Stream* pStreamSource = new Cat_StreamFile( "ms0:/a.aac" ); sd->Write( pStreamSource ); // ファイルをデコーダに書き込む sd->Flush(); // 後始末 delete sd; delete pStreamSource; delete pStreamAudioDevice; return 0; }
にゃいぶでは、下見たいにゃ感じにゃで、適当にゃにデコーダを探して経路を動的にゃに構築してくれますですにゃ。
AAC ADTS -> AAC RAW LC -> PCM // AAC MP3 -> MP3 RAW -> PCM // MP3
あとにゃは、ファイル形式にゃを自動にゃで判別して、始まりの設定も省略できたらにゃ〜と。