gpt4 book ai didi

iphone - iPhone 录音 - AudioStreamBasicDescription 的值

转载 作者:行者123 更新时间:2023-12-03 19:15:22 25 4
gpt4 key购买 nike

这些是我传入的值,这是我可以使用的唯一值组合。

dataFormat.mSampleRate = 44100;    
dataFormat.mFormatID = kAudioFormatLinearPCM;
dataFormat.mFormatFlags = kAudioFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsBigEndian;
dataFormat.mBytesPerPacket = 4;
dataFormat.mFramesPerPacket = 1;
dataFormat.mBytesPerFrame = 4;
dataFormat.mChannelsPerFrame = 2;
dataFormat.mBitsPerChannel = 16;

status = AudioQueueNewInput( &dataFormat, AudioInputCallback, self, NULL, NULL, 0,
&queue);

status = AudioFileCreateWithURL(fileUrl, kAudioFileCAFType, &dataformat, kAudioFileFlags_EraseFile, &audioFile

录音正常,但录音和播放时有很多噪音。和这段代码有什么关系吗?

最佳答案

我发现两个可能的错误。首先,正如 @invalidname 指出的那样,立体声录音可能无法在 iPhone 等单声道设备上使用。好吧,它可能会起作用,但如果它起作用了,你无论如何都会得到双单声道立体声流,那为什么还要麻烦呢?您不妨将流配置为以单声道模式工作,这样可以节省 CPU 开销。

第二个问题可能是声音失真的根源。您的流描述格式标志应该是:

kAudioFormatFlagIsSignedInteger |
kAudioFormatFlagsNativeEndian |
kAudioFormatFlagIsPacked

另外,不要忘记将 mReserved 标志设置为 0。虽然该标志的值可能会被忽略,但为了确保明确将其设置为 0 也没什么坏处。

编辑:在 iPhone 上调试音频的另一个更通用的技巧 - 如果您遇到失真、削波或其他奇怪的效果,请从手机中获取数据有效负载并查看录制内容波浪编辑器。能够缩小并查看各个样本将为您提供很多有关问题所在的线索。

为此,您需要打开“管理器”窗口,单击您的手机,然后展开应用程序旁边的小箭头(位于您通常卸载它的位置)。现在您将看到一个向下的小箭头,如果单击它,Xcode 会将数据有效负载从您的应用程序复制到硬盘驱动器上的某个位置。如果您要将录音转储到磁盘,您会在此处找到提取的文件。

关于iphone - iPhone 录音 - AudioStreamBasicDescription 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/914536/

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