pjsip VideoPreview 预览部分注意事项

文章目录

  • 使用流程
    • 初始化
    • 开启摄像头
    • 关联UI控件
    • 开始使用
  • 注意事项
    • 检查是否已开启
    • 换个摄像头

使用流程

初始化

m_pViewPreview = new VideoPreview(PJMEDIA_VID_DEFAULT_CAPTURE_DEV);

开启摄像头

    try {VideoPreviewOpParam param;param.rendId = PJMEDIA_VID_DEFAULT_RENDER_DEV;param.show = PJ_FALSE;m_pViewPreview->start(param); //这里得不到是否成功的反馈} catch (Error&err) {qDebug()<<"robin:openCamera failed:"<

关联UI控件

    VideoWindow t_videoWindow =  m_pViewPreview->getVideoWindow();try {VideoWindowInfo t_videoWindowInfo = t_videoWindow.getInfo();QSize t_widgetSize = ui->widget_selfCameraPreview->size();MediaCoordinate t_mediaCoor;t_mediaCoor.x = 0;t_mediaCoor.y = 0;t_videoWindow.setPos(t_mediaCoor);MediaSize t_mediaSize ;t_mediaSize.w = t_widgetSize.width();t_mediaSize.h = t_widgetSize.height();t_videoWindow.setSize(t_mediaSize);HWND w = (HWND)t_videoWindowInfo.winHandle.handle.window;HWND new_parent = (HWND)ui->widget_selfCameraPreview->winId();SetParent(w,new_parent);} catch (Error&err) {qDebug()<<"robin:m_pViewPreview getInfo() failed:"<

开始使用

    VideoWindow t_videoWindow =  m_pViewPreview->getVideoWindow();pjsua_vid_win_id t_checkCameraWinId =  pjsua_vid_preview_get_win(PJMEDIA_VID_DEFAULT_CAPTURE_DEV);if(PJSUA_INVALID_ID == t_checkCameraWinId){   //说明此时camer已经开启了,直接返回就好了//这里是用pjsua的代码,而不是用pjsua2代码,因为这样写更简洁;pjsua2处理方式是异常。qDebug()<<"robin:beginCameraPreview, camera is not opened";return;}try {//这里如果摄像头没有启动的话,下一步会抛出警告;//我在这里想判断一下设备是否可用,但是做不到t_videoWindow.Show(true);} catch (Error &err) {qDebug()<<"robin:ZVideoCallWidget::beginCameraPreview err:"<

注意事项

检查是否已开启

    //判断一下是否已经开启了pjsua_vid_win_id t_checkCameraWinId =  pjsua_vid_preview_get_win(PJMEDIA_VID_DEFAULT_CAPTURE_DEV);if(PJSUA_INVALID_ID != t_checkCameraWinId){   //说明此时camer已经开启了,直接返回就好了//这里是用pjsua的代码,而不是用pjsua2代码,因为这样写更简洁;pjsua2处理方式是异常。qDebug()<<"robin:camera already opened";return;}

看了一下pjsip的源码知道, m_pViewPreview->start(param) 里面会创建。因此要判断一下,不要多次重复创建。会导致摄像头出问题,导致必须要拔插usb摄像头才行。

换个摄像头

如果反复打开关闭摄像头(15次以上),报异常的话。可以尝试换个摄像头试试。
貌似打开摄像头失败的情况跟摄像头也有很大关系。像是笔记本自带的摄像头,就没有打开失败的情况发生。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章