Android 是否可以解码存储在字节数组中的mp3数据?

Android 是否可以解码存储在字节数组中的mp3数据?,android,c++,opensl,Android,C++,Opensl,是否可以对存储在缓冲区中的mp3数据进行解码 我知道我可以。但是我无法创建一个SimpleBufferQueue来用作解码器的输入 这是当前的代码。我已经能够让simplebufferqueue在其他地方工作,以提供最终音频输出,并且可以愉快地为字节数组播放WAV,因此我知道opensl/es、文件、平板电脑等没有任何问题 // THIS CODE CRAHES THE PROGRAM WHEN YOU REALIZE THE PLAYER //inbound SLDataLocator_And

是否可以对存储在缓冲区中的mp3数据进行解码

我知道我可以。但是我无法创建一个SimpleBufferQueue来用作解码器的输入

这是当前的代码。我已经能够让simplebufferqueue在其他地方工作,以提供最终音频输出,并且可以愉快地为字节数组播放WAV,因此我知道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);        

谢谢大家

在android上似乎没有办法做到这一点。
大多数主要应用程序似乎都使用libstagefright进行解码。

你有没有想过这是否可行?我现在正在搜索关于做那个的。。。这几乎是你能做到的。不,我没有找到办法,糟透了,因为我真的需要。不幸的是,一些主要应用程序(xbmc、firefox等)似乎使用libstagefright而不是opensl/es进行媒体解码。舞台灯光在ndk之外,因此是一个真正的开始工作的必经之路。我还没有试过这样做,也没有找到任何好的指南。很抱歉