首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在iOS断线机上使用avaudioengine

在iOS断线机上使用avaudioengine
EN

Stack Overflow用户
提问于 2019-10-13 20:53:46
回答 1查看 376关注 0票数 1

在我的应用程序中同时使用AVAudioPlayer和AVAudioEngine时,我遇到了问题。我使用AVAudioPlayer播放远程音频文件和音频实时流。我用AVAudioEngine捕捉麦克风的声音并转录它。但是,每当我使用AVAudioEngine并返回到播放机时,我就不能播放任何音频,因为avasset是空的。我必须重新设置和播放它。使用麦克风不干扰音频播放的最佳方法是什么?

代码语言:javascript
复制
let audioEngine = AVAudioEngine()
var inputNode: AVAudioInputNode!


// view did load

let audioSession = AVAudioSession.sharedInstance()
try audioSession.setCategory(AVAudioSession.Category.record, mode: AVAudioSession.Mode.measurement)
try audioSession.setActive(true, options: .notifyOthersOnDeactivation)
inputNode = audioEngine.inputNode

let recordingFormat = inputNode.outputFormat(forBus: 0)
inputNode.removeTap(onBus: 0)
inputNode.installTap(onBus: 0, bufferSize: 1024, format: recordingFormat) { (buffer: AVAudioPCMBuffer, when: AVAudioTime) in
    self.recognitionRequest?.append(buffer)
}
audioEngine.prepare()
try audioEngine.start()

//viewWillDisappear

self.audioEngine.stop()
self.inputNode.removeTap(onBus: 0)
EN

回答 1

Stack Overflow用户

发布于 2021-12-21 12:18:33

FWIW matt的回复为我解决了这个问题(谢谢!)。我和OP有类似的问题。我正在通过SFSpeechRecognizer (需要通过inputNode使用录音功能)混合转录,通过AVAudioRecorder记录实际音频,通过AVPlayer播放音频。音频文件(对我来说,在Firestore中)可以很好地播放,直到我录制了一个新的音频。然后什么也不会回放。有一段时间,我认为这与存储桶或数据库中的延迟有关--或者在我的函数中混合记录和播放状态。

SFSpeechRecognizer在AVAudioSession中使用AVAudioEngine实例。不知何故,我的代码掩盖了这样一个事实:我的AVAudioRecorder也在一个单独的AVAudioSession中运行。(我应该在同一次会议上运行这些程序吗?这实际上适用于基本用例吗?)

我的旧密码:

代码语言:javascript
复制
try audioSession.setCategory(.record, mode: .measurement, options: .mixWithOthers)

我的新代码有效:

代码语言:javascript
复制
try audioSession.setCategory(.playAndRecord, mode: .measurement, options: .mixWithOthers)

在哪里..。

代码语言:javascript
复制
let audioSession = AVAudioSession.sharedInstance()

在这件事上挣扎了一段时间,所以确认一下以防其他人遇到这件事。

出于某种原因,我想我可以把我的AVAudioSession撕下来,然后让AVPlayer做它的事情。我的一部分猜测仍然是可能的,但我在这条道路上尝试了几件事,但都没有成功。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58367695

复制
相关文章

相似问题

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