小编Boa*_*ish的帖子

iOS AudioUnit设置将麦克风输入保存到原始PCM文件

我目前正在开发iOS的VOIP项目.
我使用AudioUnits从麦克风获取数据并播放声音.
我的主应用程序是用C#(Xamarin)编写的,它使用C++库来实现更快的音频和编解码处理.

为了测试输入/输出结果我正在测试同一设备上的录制和播放
- 将麦克风音频数据存储在recordingCallback的缓冲区中
- 从playbackCallback中的缓冲区播放数据

这按预期工作,语音质量很好.

我需要将传入的音频数据从麦克风保存到原始PCM文件中.

我已经这样做了,但结果文件只包含一些短的"嘟嘟"信号.

所以我的问题是:

我需要什么音频设置,我可以在生成的原始PCM文件中听到我的声音(真实的音频信号)而不是短的哔声?
有谁知道什么可能是错的或我必须做什么,我能够正确地重播生成的PCM文件?

我目前的格式设置是(C#代码):

int framesPerPacket = 1;
int channelsPerFrame = 1;
int bitsPerChannel = 16;
int bytesPerFrame = bitsPerChannel / 8 * channelsPerFrame;
int bytesPerPacket = bytesPerFrame * framesPerPacket;
AudioStreamBasicDescription audioFormat = new AudioStreamBasicDescription ()
{
  SampleRate = 8000,
  Format = AudioFormatType.LinearPCM,
  FormatFlags = AudioFormatFlags.LinearPCMIsSignedInteger | AudioFormatFlags.LinearPCMIsPacked | AudioFormatFlags.LinearPCMIsAlignedHigh,
  BitsPerChannel = bitsPerChannel,
  ChannelsPerFrame = channelsPerFrame,
  BytesPerFrame = bytesPerFrame,
  FramesPerPacket = framesPerPacket,
  BytesPerPacket = bytesPerPacket,
  Reserved = 0
}; …
Run Code Online (Sandbox Code Playgroud)

iphone audio pcm audiounit ios

5
推荐指数
1
解决办法
1811
查看次数

标签 统计

audio ×1

audiounit ×1

ios ×1

iphone ×1

pcm ×1