2

我正在尝试在 Android 应用程序中正在进行 OpenTok 视频会议时拍照。我使用适用于 Android 的 OpenTok SDK 2.0。

我尝试使用 publisher.setPublishVideo(false) 来临时释放相机,以便可以使用默认的相机活动来拍照。但看起来 OpenTok 并没有释放相机硬件。

作为一种解决方法,我尝试使用 session.unpublish(publisher),它释放了相机(它还切断了我不想要的音频流)但是一旦我完成了拍照,这次 a/v 是未使用 session.publish(publisher) 恢复。

对此有什么帮助吗?

4

3 回答 3

2

迟到的回应,但认为这可能对遇到相同问题的任何人有所帮助。

我的解决方案是在开始拍照之前销毁捕获器

mPublisher.setPublishVideo(false);
BaseVideoCapturer bvc = mPublisher.getCapturer();
if(bvc != null){
    bvc.destroy();
}
//intent to start picture capture (Ex. ACTION_IMAGE_CAPTURE)

拍照后恢复时,需要重新初始化

BaseVideoCapturer bvc = mPublisher.getCapturer();
if(bvc != null){
    if(bvc.isCaptureStarted() == false){
        bvc.init();
        bvc.startCapture();
        mPublisher.setPublishVideo(true);
    }           
}
于 2014-10-20T21:06:50.247 回答
1

你有没有试过publisher.onPause()publisher.onResume()这对我有用。

问候。

于 2017-10-22T21:45:16.320 回答
0

我个人从未尝试过,但是使用 Android 2.0 beta 2,您也许可以使用 PublisherKit 来完成类似的事情。有一些类似的方法setRenderer(BaseVideoRenderer renderer)可能setCapturer(BaseVideoCapturer capturer)允许您以编程方式释放相机setPublishVideo( false )

祝你好运!

于 2014-03-07T00:49:09.450 回答