我正在使用Twilio可编程视频在音频聊天中连接两个用户。我想让用户选择在音频会话期间录制他们的屏幕,所以我使用Replaykit。一切都正常,除了Twilio一启动,录音中的音频就会被切断。
在Twilio使用的音频类型和Replaykit音频捕获之间是否存在冲突?
我以前在Twilio处于活动状态时尝试添加声音时遇到过类似的情况,这会导致Twilio音频在播放另一个声音时立即被切断。
编辑:我已经尝试了不同的方法,所以我只有最新的更改,但这里是我在ReplayKit中使用的代码。这只是标准的开始、停止和预览录制。
func startRecording() {
guard recorder.isAvailable else {
print("Recording not available")
return
}
recorder.isMicrophoneEnabled = true
recorder.startRecording{ [unowned self] (error) in
guard error == nil else {
print("error starting the recording")
return
}
print("Started Recording Successfully")
self.isRecording = true
}
}
func stopRecording() {
recorder.stopRecording { [unowned self] (preview, error) in
print("Stopped recording")
guard preview != nil else {
print("Preview controller not available")
return
}
let alert = UIAlertController(title: "Recording Finished", message: "Would you like to edit or delete your recording?", preferredStyle: .alert)
let deleteAction = UIAlertAction(title: "Delete", style: .destructive, handler: { (action: UIAlertAction) in
self.recorder.discardRecording(handler: { () -> Void in
print("Recording suffessfully deleted.")
})
})
let editAction = UIAlertAction(title: "Edit", style: .default, handler: { (action: UIAlertAction) -> Void in
preview?.previewControllerDelegate = self
self.present(preview!, animated: true, completion: nil)
})
alert.addAction(editAction)
alert.addAction(deleteAction)
self.present(alert, animated: true, completion: nil)
self.isRecording = false
}
}
func previewControllerDidFinish(_ previewController: RPPreviewViewController) {
dismiss(animated: true)
}我也尝试过在控制面板上使用新的录制功能。我可以从其他应用程序捕获音频,但当Twilio在我的应用程序上启动时,录音中的音频会静默,并在Twilio停止时返回。这就是为什么我认为Twilio和Replaykit之间存在一些冲突,但也许有一种方法可以捕捉到它,但我不知道。
我也尝试了.startCapture而不是.startRecording,但我认为我没有正确使用它,而且我也找不到很多关于它的文档。
发布于 2018-04-09 19:05:56
为了防止新的音频源中断前一个音频源,您可以将其类别设置为ambient:
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient)在您的情况下,我认为您应该将其应用于Twilio会话
https://stackoverflow.com/questions/47514359
复制相似问题