Можно ли декодировать поток MMS + WMA2 с помощью аудиоустройств на iPhone? - PullRequest
2 голосов
/ 15 марта 2010

Я не уверен, могут ли аудиоустройства работать в качестве кодеков в сценарии потокового аудио на iPhone.

Я читал в разных местах, что это можно сделать, но я не видел ни примеров, ни соответствующей документации для этого. Вместо этого я обнаружил, что большинство выпущенных приложений используют ffmpeg и libmms.

Я ценю любую помощь, которую вы можете мне оказать.

Ответы [ 2 ]

5 голосов
/ 15 ноября 2011

Аудиоустройства очень низкого уровня и полезны, если вы хотите выполнить тяжелую обработку звука, такую ​​как звуковые эффекты в реальном времени. Насколько я знаю, Audio Units не поддерживает аудиокодек wma. Для этого вам понадобится библиотека FFmpeg.

Поскольку FFmpeg также поддерживает mms, нет необходимости использовать другую библиотеку, такую ​​как libmms, для подключения к аудиопотокам mms. Вы можете подключиться к аудиопотокам MMS с помощью FFmpeg следующим образом:

const char *url = "mmst://somemmsurlhere.com";
avformat_open_input(formatCtx, url, NULL, NULL);

Для декодирования аудиоданных вы можете использовать функцию avcodec_decode_audio3 . Как только вы подготовите декодированные аудиоданные, я предлагаю вам использовать платформу AudioQueue для воспроизведения. AudioQueue работает, вызывая определенные вами функции обратного вызова для запроса аудиоданных. Одной из этих функций обратного вызова является AudioQueueOutputCallback, где вы можете передавать декодированные аудиоданные следующим образом:

- (void)handlePlayCallback:(AudioQueueRef) inAudioQueue buffer:(AudioQueueBufferRef) inBuffer {
    // copy decoded audio data to inBuffer->mAudioData
    // and set the size of the copied data like this
    // inBuffer->mAudioDataByteSize = data_written

    if(inBuffer->mAudioDataByteSize > 0) {
        AudioQueueEnqueueBuffer(inAudioQueue, inBuffer, 0, NULL);
    }
}
0 голосов
/ 03 ноября 2010

Посмотрев на это еще раз, похоже, что iOS допускает только встроенные аудиоустройства, в отличие от Mac OS X. Встроенные аудиоустройства описаны в «Руководстве по хостингу аудиоустройств для iOS» -> «Использование определенных аудиоустройств", который можно найти в Интернете здесь .

...