Ios 音频队列获取错误的数据包编号?

Ios 音频队列获取错误的数据包编号?,ios,core-audio,audioqueue,Ios,Core Audio,Audioqueue,我的应用程序使用ffmpeg将彩信流解析到缓冲区,并使用音频队列播放缓冲数据。现在我可以确认缓冲数据是好的,但我不能播放它。播放的结构基于AudioFileStreamExample演示的客户端,它可以播放http流(AudioFileStreamExample演示的服务器)。我注意到在回调函数中: void MyPacketsProc(void *inClientData, UInt32 inNumberBytes, UInt32 inNumberPackets, const voi

我的应用程序使用ffmpeg将彩信流解析到缓冲区,并使用音频队列播放缓冲数据。现在我可以确认缓冲数据是好的,但我不能播放它。播放的结构基于AudioFileStreamExample演示的客户端,它可以播放http流(AudioFileStreamExample演示的服务器)。我注意到在回调函数中:

void MyPacketsProc(void *inClientData, UInt32 inNumberBytes, 
    UInt32 inNumberPackets, const void *inInputData, 
    AudioStreamPacketDescription *inPacketDescriptions),
当我直接播放AudioFileStreamExample演示的http流时,numberpackets中的param
inNumberPackets
在大多数情况下大于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回调没有按时调用时,似乎会发生这种情况