首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AVAudioEngine低音量

AVAudioEngine低音量
EN

Stack Overflow用户
提问于 2016-03-20 23:12:16
回答 1查看 2.2K关注 0票数 3

我正在用Swift编写一个iOS应用程序,它记录用户的语音,然后可以用一些语音效果回放它,但问题是,当使用内置iPhone麦克风时,回放非常安静。使用耳机是没有问题的。

录制代码:

代码语言:javascript
复制
let recordingName = "my_audio.m4a"
let pathArray = [dirPath, recordingName]
let filePath = NSURL.fileURLWithPathComponents(pathArray)
print(filePath)

let recordSettings: [String: AnyObject] = [
    AVFormatIDKey: Int(kAudioFormatAppleLossless),
    AVEncoderAudioQualityKey : AVAudioQuality.Max.rawValue,
    AVEncoderBitRateKey : 320000,
    AVNumberOfChannelsKey: 2,
    AVSampleRateKey : 44100.0
]

let session = AVAudioSession.sharedInstance()
try! session.setCategory(AVAudioSessionCategoryPlayAndRecord)
try! audioRecorder = AVAudioRecorder(URL: filePath!, settings: recordSettings)

audioRecorder.meteringEnabled = true
audioRecorder.updateMeters()
audioRecorder.delegate = self
audioRecorder.prepareToRecord()
audioRecorder.record()

播放代码:

代码语言:javascript
复制
playerNode.stop()
playerNode.volume = 1.0
audioEngine.stop()
audioEngine.reset()

audioEngine.attachNode(playerNode)
audioEngine.attachNode(audioUnitTime)
audioEngine.connect(playerNode, to: audioUnitTime, format: receivedAudio.processingFormat)
audioEngine.connect(audioUnitTime, to: audioEngine.outputNode, format: receivedAudio.processingFormat)

playerNode.scheduleFile(receivedAudio, atTime: nil, completionHandler: nil)
try! audioEngine.start()
playerNode.play()

对我来说,唯一的解决方案是,最初的苹果语音记录应用程序也会做同样的事情,但只有在右上角的扬声器图标被禁用的情况下才会这样做。尽管我没能找到那个扬声器图标是做什么用的。

EN

回答 1

Stack Overflow用户

发布于 2016-03-20 23:25:03

好了,我终于找到了。问题出在AVAudioSession上:

代码语言:javascript
复制
let session = AVAudioSession.sharedInstance()
try! session.setCategory(AVAudioSessionCategoryPlayAndRecord, withOptions:AVAudioSessionCategoryOptions.DefaultToSpeaker)
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36115497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档