Pjsip Android 视频通话:反转视频预览 [英] Pjsip Android Video Call: Inverted Video Preview

查看:112
本文介绍了Pjsip Android 视频通话:反转视频预览的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 Pjsip 库进行 SIP 视频通话.我面临问题在 SurfaceView 中显示我自己的视图.

I am using Pjsip library for SIP Video call. I am facing issue displying my own view in a SurfaceView.

图片如下:

预期视图:

在 onCallMediaState 中获取预览 ID

Fetching Preview ID in onCallMediaState

mVideoPreview = VideoPreview(mediaInfo.videoCapDev)
mVideoWindow = VideoWindow(mediaInfo.videoIncomingWindowId)

我用来在 SurfaceView 中显示此预览的代码:

Code I have used to display this preview in my SurfaceView:

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

我知道另一边的人总是会看到我视频的镜像视图.但在我自己的观点的情况下,这不应该发生.我的感觉是我正在显示发送给其他人的预览.我没有得到关于如何使用 Pjsip 库显示我自己的视图(没有镜像效果)的任何提示.

I know that the person on other side will always recieve mirror view of my video. But in case of my own view, this should not happen. What I feel is I am displaying the preview which is sent to the other person. I am not getting a single hint about how to display my own view(without mirror effect) using Pjsip library.

有人可以帮我解决这个问题吗?

Can anyone please help me with this?

推荐答案

我所做的是用 TextureView 替换 SurfaceView 然后检查:

What I did is replaced SurfaceView with TextureView and then check:

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

它奏效了.希望它能帮助别人.:)

And it worked. Hope it help others. :)

====== 更新 ======

====== UPDATE ======

当我检查我的后置摄像头时,视图也在那里翻转,所以我需要这样做以使其正确:

When I checked my back camera, the view was also flipped over there so I need to do this to make it proper:

surfacePreviewCapture.setTransform(null)

这篇关于Pjsip Android 视频通话:反转视频预览的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆