2017-01-18 4 views
0

После поиска в Интернете, я все еще не могу найти ответ на такой простой вопрос. Я записываю аудио с avaudiorecorder, и у меня в настоящее время есть один канал в моих настройках для моего сеанса аудио, так как моя запись «моно». Мои настройки выглядят так:Каналы AVAudioRecorder Swift 3

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

У вас есть только один канал

Так использовать это:

audioRecorder.updateMeters() 
let normalizedValue = pow(10, audioRecorder.averagePower(forChannel: 0)/20) 
+0

Важной частью здесь является канал 0 – brightskyapps

Смежные вопросы