Переключение камеры спереди назад в iPhone pjsip - PullRequest
0 голосов
/ 18 января 2019

Я работаю над приложением для видеозвонков в 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);

Если есть какой-либо другой метод, пожалуйста, ведите меня.

1 Ответ

0 голосов
/ 11 февраля 2019

pjsua_call_set_vid_strm() уже правильный метод, просто попробуйте изменить идентификатор устройства захвата (то есть: 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) должна указывать, какая из них является задней камерой.

...