【问题标题】:Switching camera from front to back in pjsip iPhone在pjsip iPhone中从前到后切换相机
【发布时间】:2019-01-18 11:51:02
【问题描述】:

我正在开发 pjsip 视频通话应用程序。我想在通话中切换预览摄像头。

这是我正在尝试的代码。

pjsua_call_vid_strm_op_param param;
pjsua_call_vid_strm_op_param_default(&param);
param.cap_dev = PJMEDIA_VID_DEFAULT_CAPTURE_DEV;
pj_status_t status = pjsua_call_set_vid_strm(_current_call, 
PJSUA_CALL_VID_STRM_CHANGE_CAP_DEV, &param);
if (status == PJ_SUCCESS)
{
   NSLog(@"Toggle");
}

我无法使用上述代码切换相机。

在 pjsip 中添加帐户之前,我还添加了以下代码

acc_cfg.vid_in_auto_show = PJ_TRUE;
acc_cfg.vid_out_auto_transmit = PJ_TRUE;
acc_cfg.vid_cap_dev = PJMEDIA_VID_DEFAULT_CAPTURE_DEV;
acc_cfg.vid_rend_dev = PJMEDIA_VID_DEFAULT_RENDER_DEV;

pjmedia_orient orient;
orient = PJMEDIA_ORIENT_ROTATE_90DEG;
pjsua_vid_dev_set_setting(PJMEDIA_VID_DEFAULT_CAPTURE_DEV, 
PJMEDIA_VID_DEV_CAP_ORIENTATION, &orient, PJ_TRUE);

如果有其他方法请指导我。

【问题讨论】:

  • 嗨@Nazrul Islam,我在设置相机pjsua_call_set_vid_strm() 时遇到问题,功能工作正常,但在接收器设备中视频太滞后,显示视频需要很长时间。

标签: iphone sip pjsip


【解决方案1】:

pjsua_call_set_vid_strm() 已经是正确的方法,只需尝试更改捕获设备 ID(即:param.cap_dev)。请注意,PJMEDIA_VID_DEFAULT_CAPTURE_DEV 表示默认捕获设备,在 iPhone 上通常是前置摄像头。

您可以使用pjsua_vid_dev_count()pjsua_vid_dev_get_info() 枚举可用的视频设备。捕获设备应将方向信息 (pjmedia_vid_dev_info.dir) 设置为 PJMEDIA_DIR_CAPTURE。并且设备名称信息 (pjmedia_vid_dev_info.name) 应该告诉哪个是后置摄像头。

【讨论】:

  • 嗨@nanang,我在设置相机 pjsua_call_set_vid_strm() 时遇到问题,功能工作正常,但在接收器设备中视频太滞后,显示视频需要很长时间。
  • 嗨@nanang,当我调用 pjsua_call_set_vid_strm 来停止和恢复传输视频时,我的应用程序被阻止了所有线程。我什么都做不了。
  • 视频目录 PJMEDIA_DIR_DECODING 设备名称 OpenGL 渲染器设备 ID 0 视频目录 PJMEDIA_DIR_ENCODING 设备名称彩条生成器设备 ID 1 视频目录 PJMEDIA_DIR_ENCODING 设备名称彩条活动设备 ID 2 我得到了三个设备都不是 PJMEDIA_DIR_CAPTURE跨度>
猜你喜欢
  • 2023-03-05
  • 2015-05-04
  • 2017-09-12
  • 2014-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-24
  • 2013-01-31
相关资源
最近更新 更多