首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Replaykit和Twilio

Replaykit和Twilio
EN

Stack Overflow用户
提问于 2017-11-27 23:23:26
回答 1查看 407关注 0票数 0

我正在使用Twilio可编程视频在音频聊天中连接两个用户。我想让用户选择在音频会话期间录制他们的屏幕,所以我使用Replaykit。一切都正常,除了Twilio一启动,录音中的音频就会被切断。

在Twilio使用的音频类型和Replaykit音频捕获之间是否存在冲突?

我以前在Twilio处于活动状态时尝试添加声音时遇到过类似的情况,这会导致Twilio音频在播放另一个声音时立即被切断。

编辑:我已经尝试了不同的方法,所以我只有最新的更改,但这里是我在ReplayKit中使用的代码。这只是标准的开始、停止和预览录制。

代码语言:javascript
复制
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,但我认为我没有正确使用它,而且我也找不到很多关于它的文档。

EN

回答 1

Stack Overflow用户

发布于 2018-04-09 19:05:56

为了防止新的音频源中断前一个音频源,您可以将其类别设置为ambient:

代码语言:javascript
复制
 try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient)

在您的情况下,我认为您应该将其应用于Twilio会话

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

https://stackoverflow.com/questions/47514359

复制
相关文章

相似问题

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