1

我正在使用 Pjsip 库实现SIP 视频通话。

我的视图已成功传输给其他人,但我想要的是在我的屏幕上显示我的相机视图(类似于WhatsApp)。

我发现Pjsip 正在使用摄像头传输视图。如何使用 Pjsip 库在SurfaceView中显示我的相机视图(因为我不能使用多个 Camera 实例)?

我已经使用以下代码进行了尝试:

fun updateVideoPreview(holder: SurfaceHolder) {
if (SipManager.getInstance()?.activeCalls?.get(callId) != null &&
        SipManager.getInstance()?.activeCalls?.get(callId)?.mVideoWindow != null &&
        SipManager.getInstance()?.activeCalls?.get(callId)?.mVideoPreview != null) {
    if (videoPreviewActive) {
        val vidWH = VideoWindowHandle()
        vidWH.handle?.setWindow(holder.surface)
        val vidPrevParam = VideoPreviewOpParam()
        vidPrevParam.window = vidWH
        vidPrevParam.show = true
        try {
            SipManager.getInstance()?.activeCalls?.get(callId)?.mVideoPreview?.start(vidPrevParam)
        } catch (e: Exception) {
            println(e)
        }
    } else {
        try {
            SipManager.getInstance()?.activeCalls?.get(callId)?.mVideoPreview?.stop()
        } catch (e: Exception) {
            println(e)
        }
    }
}

}

当我执行这段代码时,我发现是传输到另一边的预览(镜像效果),但我想要的是我自己的视图。

谁能帮我这个?

4

1 回答 1

0

我这样做了: - 将 SurfaceView 替换为 TextureView 和

if (isFrontCamera) {
    val matrix = Matrix()
    matrix.setScale(-1.0f, 1.0f)
    matrix.postTranslate(width.toFloat(), 0.0f)
    surfacePreviewCapture.setTransform(matrix)
}

它对我有用。希望对其他人有所帮助。

于 2019-09-26T10:51:51.303 回答