Можно ли декодировать данные mp3, хранящиеся в байтовом массиве?

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);        

Спасибо всем

Теги:
opensl

1 ответ

0
Лучший ответ

Кажется, не существует способа сделать это на Android. Большинство основных приложений, похоже, используют libstagefright для их декодирования.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню