Pjsip Android Video Call:如何使用 Pjsip Library 在 SurfaceView 中显



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

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

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

我已经使用以下代码尝试过:

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)
}
}
}

}

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

谁能帮我解决这个问题?

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

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

它对我有用。希望它能帮助别人。

最新更新