gpt4 book ai didi

ios - 在 iOS 上使用 AudioQueue 录制小端 PCM

转载 作者:行者123 更新时间:2023-11-29 04:54:29 25 4
gpt4 key购买 nike

我正在尝试使用 AudioQueue 录制一个小端 PCM 文件。根据文档,我应该清除 AudioStreamBasicDescripton.mFormatFlags 中的 kAudioFormatFlagIsBigEndian 位。

文档说:

kAudioFormatFlagIsBigEndian. Set for big endian, clear for little endian.

我的设置看起来像

- (void)setupAudioFormat:(AudioStreamBasicDescription*)format 
{
//format->mSampleRate = 8000.0;
format->mSampleRate = 44000.0;
format->mFormatID = kAudioFormatLinearPCM;
format->mFramesPerPacket = 1;
format->mChannelsPerFrame = 2;
format->mBytesPerFrame = format->mBytesPerPacket = format->mChannelsPerFrame * sizeof(SInt16);
format->mBitsPerChannel = 16;
format->mReserved = 0;
format->mFormatFlags = ~kAudioFormatFlagIsBigEndian | kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked | kAudioFormatFlagIsAlignedHigh;

}

我得到的错误是

kAudioFileUnsupportedDataFormatError

谁能帮我找出问题所在吗?是否有可能在 iOS 设备上记录小端?使用小端记录的一种替代方法是稍后转换文件,因此任何有关此的提示也将非常适用。

最佳答案

您的意思是请求 44100.0 的采样率吗?

清除标志的方法不是像您所做的那样设置除该位之外的所有位(您可能在示例中设置了数十个非法位),但是:

mFormatFlags &= ~(bitToClear);

关于ios - 在 iOS 上使用 AudioQueue 录制小端 PCM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8254315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com