Мое приложение использует ffmpeg для анализа потоковой передачи mms в буферы и использует Аудио-очередь для воспроизведения буферизованных данных.Теперь я могу подтвердить, что буферизованные данные хороши, но я не могу их воспроизвести.Структура воспроизведения основана на клиенте демо AudioFileStreamExample и может воспроизводить поток http (сервер демо AudioFileStreamExample) .Я замечаю в функции обратного вызова:
void MyPacketsProc(void *inClientData, UInt32 inNumberBytes,
UInt32 inNumberPackets, const void *inInputData,
AudioStreamPacketDescription *inPacketDescriptions),
Когда я непосредственно воспроизводю http-поток демо AudioFileStreamExample, параметр inNumberPackets
в большинстве случаев больше 1;при воспроизведении mms-потока inNumberPackets
всегда равен 1. audioQueue воспроизводит только первый пакет, все последние пакеты пропускаются.
Журнал использования http-потока демонстрационной версии AudioFileStreamExample:
*AudioStreamBasicDescription info ----*
SampleRate :44100.000000
FormatID :778924083
FormatFlags :0
BytesPerPacket :0
FramesPerPacket :1152
BytesPerFrame :0
ChannelsPerFrame :2
BitsPerChannel :0
got data. bytes: 1253 packets: 2
packetSize:626
kAQBufSize:24576
bytesFilled:0
packetSize:627
kAQBufSize:24576
bytesFilled:626
got data. bytes: 627 packets: 1
packetSize:627
kAQBufSize:24576
bytesFilled:1253
Журнал использования разобранного потока mms:
*AudioStreamBasicDescription info ----*
SampleRate :48000.000000
FormatID :1819304813
FormatFlags :12
BytesPerPacket :4
FramesPerPacket :1
BytesPerFrame :4
ChannelsPerFrame :2
BitsPerChannel :16
got data. bytes: 4498 packets: 1
packetSize:216
kAQBufSize:24576
bytesFilled:0
got data. bytes: 1090 packets: 1
packetSize:576
kAQBufSize:24576
bytesFilled:216
got data. bytes: 3064 packets: 1
packetSize:576
kAQBufSize:24576
bytesFilled:792
got data. bytes: 3978 packets: 1
packetSize:252
kAQBufSize:24576
bytesFilled:1368
Я не знаю, как решить эту проблему.Кажется, что функция MyPacketsProc
получает неправильные параметры, но как это исправить?
большое спасибо.