0
我初始化的AndroidSimpleBufferQueue如价值观:无法播放PCM> 60KB与AndroidSimpleBufferQueue
SLDataLocator_AndroidSimpleBufferQueue bufferLocator = {
SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE, 2};
SLDataFormat_PCM pcmFormat = {
SL_DATAFORMAT_PCM, 1,
SL_SAMPLINGRATE_44_1, SL_PCMSAMPLEFORMAT_FIXED_16,
SL_PCMSAMPLEFORMAT_FIXED_16, SL_SPEAKER_FRONT_CENTER,
SL_BYTEORDER_LITTLEENDIAN};
SLDataSource audioSource = {&bufferLocator, &pcmFormat};
SLDataLocator_OutputMix locatorOutputMix = {SL_DATALOCATOR_OUTPUTMIX,
outputMixObj.getObject()};
SLDataSink audioSink = {&locatorOutputMix, nullptr};
[...]
然后,当我需要播放声音我排队,如:
bufferQueue->Enqueue(bufferQueue, (uint8_t*)buffer.data(),
buffer.size())
它的工作原理以及对于小于60k的缓冲区,但是当缓冲区较大时没有声音被播放或有时只是一个神器。