0

バッファに保存された mp3 データをデコードすることはできますか?

API バージョン 14 以降でバッファにデコードできることはわかっています。しかし、デコーダへの入力として使用する SimpleBufferQueue を作成できませんでした。

これが現在のコードです。最終的なオーディオ出力を供給するために別の場所で動作する simplebufferqueue を取得でき、バイト配列の Wavs を問題なく再生できるので、opensl/es、ファイル、タブレットなどに問題がないことがわかっています。

// THIS CODE CRAHES THE PROGRAM WHEN YOU REALIZE THE PLAYER
//inbound
SLDataLocator_AndroidSimpleBufferQueue locIBQ = {SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE, 2};
SLDataFormat_MIME format = {SL_DATAFORMAT_MIME, NULL, SL_CONTAINERTYPE_UNSPECIFIED};
SLDataSource audioSource = {&locIBQ, &format};

//outbound
SLDataLocator_AndroidSimpleBufferQueue locatorOutBufferQueue = {SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE, 2}; 
SLDataSink audioSink = { &locatorOutBufferQueue, NULL };

//player
const SLInterfaceID playIds[2] = {SL_IID_PLAY, SL_IID_ANDROIDSIMPLEBUFFERQUEUE};
const SLboolean playReq[2] = {SL_BOOLEAN_TRUE, SL_BOOLEAN_TRUE};
SLresult result = (*engineEngine)->CreateAudioPlayer(engineEngine, &(bqPlayerObject), &audioSource, &audioSink, 2, playIds, playReq);        

皆さんありがとう

4

1 に答える 1

0

Androidでこれを行う方法はないようです。ほとんどの主要なアプリは、デコードに libstagefright を使用しているようです。

于 2014-09-17T07:15:38.513 に答える