【问题标题】:Headphone volume issue when using AvAudioEngine output使用 AvAudioEngine 输出时的耳机音量问题
【发布时间】:2015-07-14 07:07:56
【问题描述】:

我正在使用 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”函数内,代码无法正常工作,我无法得到任何输出,为什么会这样?

【问题讨论】:

    标签: ios iphone swift core-audio avaudioengine


    【解决方案1】:

    好像把wetDryMix的值设大点可以解决这个问题。

    audioReverb.wetDryMix = 80
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-30
      • 2017-04-17
      • 2011-08-14
      • 2020-08-13
      • 1970-01-01
      • 1970-01-01
      • 2017-11-22
      • 2017-12-11
      相关资源
      最近更新 更多