我正在使用 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,但我认为我没有正确使用它,而且我找不到太多关于它的文档。