AudioStreamBasicDescription asbd;
memset(&asbd, 0, sizeof(asbd));
asbd.mSampleRate = SAMPLE_RATE; // 8
asbd.mFormatID = kAudioFormatLinearPCM;
asbd.mFormatFlags = kAudioFormatFlagIsBigEndian | kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked;
asbd.mChannelsPerFrame = 1;
asbd.mFramesPerPacket = 1;
asbd.mBitsPerChannel = 16;
// 帧比特
asbd.mBytesPerFrame = 2;
// 包比特
asbd.mBytesPerPacket = 2;
其中的,基础设置
asbd.mChannelsPerFrame = 1;
asbd.mFramesPerPacket = 1;
asbd.mBitsPerChannel = 16;
那么
asbd.mBytesPerFrame = 2;
// 包比特
asbd.mBytesPerPacket = 2;
这两个,可以算出来
mBytesPerFrame = mChannelsPerFrame * mBitsPerChannel
一帧一个通道 ,一个通道 16 个位,1 个字节 8 个位
mBytesPerFrame = mChannelsPerFrame * mFramesPerPacket * mBitsPerChannel
一帧一个通道 ,一个包里面一帧数据,一个通道 16 个位,1 个字节 8 个位
为什么会出现咔咔咔的声音?
因为声卡硬件,把数据消费掉了,正在空转
博客介绍了音频数据计算,如 mBytesPerFrame 与 mChannelsPerFrame、mFramesPerPacket、mBitsPerChannel 的关系,还解释了声卡出现咔咔声的原因,是由于声卡硬件把数据消费掉后正在空转。
1070

被折叠的 条评论
为什么被折叠?



