2015-07-14 3 views
0

Я использую AVAudioEngine для захвата голоса пользователя при применении некоторых эффектов в реальном времени (например, реверберация или СТГ) к voice.Here в мой коднаушников объем выпуска при использовании выхода AvAudioEngine

import UIKit 
import AVFoundation 

class ViewController: UIViewController{ 
var audioEngine:AVAudioEngine! 
var audioReverb:AVAudioUnitReverb! 
var audioInputNode:AVAudioInputNode! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    let session = AVAudioSession.sharedInstance() 
    session.setCategory(AVAudioSessionCategoryPlayAndRecord, error: nil) 
    session.setActive(true, error: nil) 

} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 


@IBAction func recordWithReverb(sender: AnyObject) { 


    audioEngine = AVAudioEngine() 
    audioEngine.stop() 
    audioEngine.reset() 



    audioInputNode = audioEngine.inputNode 


    audioReverb = AVAudioUnitReverb() 
    audioReverb.loadFactoryPreset(.LargeRoom) 
    audioReverb.wetDryMix = 50 


    audioEngine.attachNode(audioReverb) 
    let inputFormat = audioReverb.inputFormatForBus(0) 
    audioEngine.connect(audioInputNode, to: audioReverb, format: inputFormat) 
    audioEngine.connect(audioReverb, to: audioEngine.outputNode, format: inputFormat) 


    audioEngine.startAndReturnError(nil) 
} 
    } 

Когда я проверить его с наушниками, на которых есть микрофон (например, наушники), все работает хорошо. Но когда я использую некоторые другие наушники без микрофона (поэтому я мог использовать микрофон на iphone в качестве источника входного сигнала), правый динамик наушники всегда звучат меньше левого динамика наушников. Как я могу его исправить?

И есть еще один вопрос, который я хотел бы спросить, когда я пишу код

var audioEngine:AVAudioEngine! 
var audioReverb:AVAudioUnitReverb! 
var audioInputNode:AVAudioInputNode! 

внутри функции «recordWithReverb», код не может работать правильно, я не могу получить любой выход, Почему это случилось?

ответ

0

Похоже, что значение wetDryMix больше может решить эту проблему.

audioReverb.wetDryMix = 80