2017-01-18 9 views
0

Nach hartem Suchen über das Internet, kann ich immer noch nicht die Antwort auf solch eine einfache Frage finden. Ich nehme Audio mit aavadiorecorder auf und ich habe zurzeit einen Kanal in meinen Einstellungen für meine Audiositzung, da meine Aufnahme "mono" ist. Meine Einstellungen aussehen wie so:Kanäle 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 

Und alles, was ich tun möchte, ist die folgende

audioRecorder.averagePower(forChannel: 1) 

Aus irgendeinem Grund habe ich immer

fatal error: unexpectedly found nil while unwrapping an Optional value 

bekommen btw dies zeigt sich, wenn der Simulator ... obwohl ich versuche, den soeben aufgenommenen Ton zu spielen, ist das kein Problem.

Weiß jemand warum?

Vielen Dank!

Antwort

-1

Sie haben nur einen Kanal

diese So verwenden:

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

Der wichtige Teil ist hier Kanal 0 – brightskyapps