Ios 音频队列获取错误的数据包编号?
我的应用程序使用ffmpeg将彩信流解析到缓冲区,并使用音频队列播放缓冲数据。现在我可以确认缓冲数据是好的,但我不能播放它。播放的结构基于AudioFileStreamExample演示的客户端,它可以播放http流(AudioFileStreamExample演示的服务器)。我注意到在回调函数中:Ios 音频队列获取错误的数据包编号?,ios,core-audio,audioqueue,Ios,Core Audio,Audioqueue,我的应用程序使用ffmpeg将彩信流解析到缓冲区,并使用音频队列播放缓冲数据。现在我可以确认缓冲数据是好的,但我不能播放它。播放的结构基于AudioFileStreamExample演示的客户端,它可以播放http流(AudioFileStreamExample演示的服务器)。我注意到在回调函数中: void MyPacketsProc(void *inClientData, UInt32 inNumberBytes, UInt32 inNumberPackets, const voi
void MyPacketsProc(void *inClientData, UInt32 inNumberBytes,
UInt32 inNumberPackets, const void *inInputData,
AudioStreamPacketDescription *inPacketDescriptions),
当我直接播放AudioFileStreamExample演示的http流时,numberpackets中的paraminNumberPackets
在大多数情况下大于1;播放彩信流时,NumberPackets中的始终为1。audioQueue仅播放第一个数据包,所有最后的数据包都将丢失
使用AudioFileStreamExample演示的http流的日志:
*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
使用解析的彩信流的日志:
*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
函数的参数有误,但如何修复呢
非常感谢。同样的问题也发生在我身上,
当AudioQueue回调没有按时调用时,似乎会发生这种情况