相关疑难解决方法(0)

如何指定AVAudioEngine Mic-Input的格式?

我想录制一些音频AVAudioEngine和用户麦克风.我已经有了一个工作样本,但是无法弄清楚如何指定我想要的输出格式...

我的要求是,我需要AVAudioPCMBuffer我现在说的话......

我是否需要添加一个可以进行转码的单独节点?我找不到关于那个问题的文档/样本......

在Audio-Stuff方面,我也是一个菜鸟.我知道我想要NSData包含PCM-16bit,最大采样率为16000(8000会更好)

这是我的工作样本:

private var audioEngine = AVAudioEngine()

func startRecording() {

  let format = audioEngine.inputNode!.inputFormatForBus(bus)

  audioEngine.inputNode!.installTapOnBus(bus, bufferSize: 1024, format: format) { (buffer: AVAudioPCMBuffer, time:AVAudioTime) -> Void in

     let audioFormat = PCMBuffer.format
     print("\(audioFormat)")
  }

  audioEngine.prepare()
  do {
     try audioEngine.start()
  } catch { /* Imagine some super awesome error handling here */ }
}
Run Code Online (Sandbox Code Playgroud)

如果我改变格式让'说'

let format = AVAudioFormat(commonFormat: AVAudioCommonFormat.PCMFormatInt16, sampleRate: 8000.0, channels: 1, interleaved: false)
Run Code Online (Sandbox Code Playgroud)

然后如果会产生一个错误,说样本速率需要与hwInput相同...

很感谢任何形式的帮助!!!

编辑:我刚刚发现,AVAudioConverter但我需要兼容iOS8 ...

core-audio avfoundation ios avaudioengine

12
推荐指数
1
解决办法
5948
查看次数

标签 统计

avaudioengine ×1

avfoundation ×1

core-audio ×1

ios ×1