2017-11-23 5 views
2

私はそれが大声またはその逆にするために録音した後に、オーディオファイルを正常化しようとしているが、私は、私がチェックしたAudioKitファイルの正規

エラーWARNING AKAudioFile: cannot normalize a silent fileを取得していますがaudioFile.maxLevelをrecordered、それは1.17549e-38、最小フロートました。

私は、私はこのコードを追加した正式Recorder exampleを使用していて、レコードの後に​​正常化するために:

let norm = try player.audioFile.normalized(newMaxLevel: -4.0); 

私が間違ってやっていますか?なぜmaxLevelが無効ですか?レコードは十分に大きいです。

答えて

2

よりもむしろそのように新しいインスタンスを作成し、プレーヤーの内部オーディオ・ファイルを使用します。

if let file = try? AKAudioFile(forReading: url) { 
    if let normalizedFile = try? file.normalized(newMaxLevel: -4) { 
     Swift.print("Normalized file sucess: \(normalizedFile.maxLevel)") 
    } 
} 

それが再生のために利用できるように、私はAKAudioPlayerにノーマライズfuncを追加することができます。本質的に、プレイヤーは初期化のためにAKAudioFileを使用し、後続のすべての操作はバッファー内で行われます。

+0

うわー!それは働いている!ありがとうございました!しかし、奇妙な、正規化した後にnewMaxLevelは-2.42144ですが、私は-4で標準化関数を実行します、hmm) –

+0

私はそれを見ていきます –