iphone - 在pjsip iPhone中从前到后切换相机
问题描述
我正在开发 pjsip 视频通话应用程序。我想在正在进行的通话中切换预览摄像头。
这是我正在尝试的代码。
pjsua_call_vid_strm_op_param param;
pjsua_call_vid_strm_op_param_default(¶m);
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, ¶m);
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);
如果有其他方法请指导我。
解决方案
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
) 应该告诉哪一个是后置摄像头。
推荐阅读
- javascript - 使用 Select 输入和 v-model 更新两个数据值
- sql - 表格的逻辑是否正确?
- java - 如果它是某个双值,如何将值从命令行写入数据库
- reactjs - Resetting select tag after submit
- ios - CollectionView navigationController?.pushViewController() 什么都不做,没有错误
- python - 在 Python 中为具有 2 个参数的函数绘制绘图
- python - 数据因 aes 文件传输而损坏 python tkinter
- extjs - UnhandledPromiseRejectionWarning:错误:使用 ext-gen 找不到模块
- python - 为什么我的 pygame.group 在循环中时有一个空值?
- c# - 什么是空!声明是什么意思?