频道 AVAudioRecorder Swift 3
Posted
技术标签:
【中文标题】频道 AVAudioRecorder Swift 3【英文标题】:Channels AVAudioRecorder Swift 3 【发布时间】:2017-01-18 23:14:45 【问题描述】:在互联网上苦苦搜索之后,我似乎仍然无法找到这样一个简单问题的答案。我正在使用 avaudiorecorder 录制音频,由于我的录音是“单声道”,因此我目前的音频会话设置中有一个通道。我的设置如下所示:
try session.setCategory(AVAudiosessionCategoryAmbient)
try session.overrideOutputAudioPort(AVAudioSessionPortOverride.speaker)
try session.setActive(true)
let settings = [
AVFormatIDKey: Int(kAudioFormatMPEG4AAC),
AVSampleRateKey: 12000,
AVNumberOfChannelsKey: 1,
AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue
]
audioRecorder = try AVAudioRecorder(url: audioFileName, settings: settings)
audioRecorder.delegate = self
audioRecorder.isMeteringEnabled = true
而我想做的只是以下
audioRecorder.averagePower(forChannel: 1)
由于某种原因,我总是得到
fatal error: unexpectedly found nil while unwrapping an Optional value
顺便说一句,使用模拟器时会出现这种情况......即使我尝试播放刚刚录制的声音,它也没有问题。
有人知道为什么吗?
非常感谢!
【问题讨论】:
【参考方案1】:与索引一样,第一个通道是0
。只需使用:
audioRecorder.averagePower(forChannel: 0)
【讨论】:
【参考方案2】:你只有一个频道
所以用这个:
audioRecorder.updateMeters()
let normalizedValue = pow(10, audioRecorder.averagePower(forChannel: 0) / 20)
【讨论】:
这里重要的部分是通道0以上是关于频道 AVAudioRecorder Swift 3的主要内容,如果未能解决你的问题,请参考以下文章
Swift + AVAudioRecorder 非常安静地录制
Swift 运行时错误 (exc_bad_access) AVAudioRecorder, recordSettings
Swift AVAudioPlayer 不会播放用 AVAudioRecorder 录制的音频