当前位置: 首页 > news >正文

苏州做儿童场馆门票包票的网站网站刷流量有用吗

苏州做儿童场馆门票包票的网站,网站刷流量有用吗,WordPress分类中文404错误,上海外贸人才网前言 本播放器在VS2019下开发,使用ffmpegD3D实现视频播放渲染功能。同时本播放器支持录像功能、截图功能、音视频播放功能、码流信息显示、电子放大功能等。D3D的渲染同时支持surface和texture两种方式,电子放大功能是在D3D Texture方式下进行实现。以下…

前言

    本播放器在VS2019下开发,使用ffmpeg+D3D实现视频播放渲染功能。同时本播放器支持录像功能、截图功能、音视频播放功能、码流信息显示、电子放大功能等。D3D的渲染同时支持surface和texture两种方式,电子放大功能是在D3D Texture方式下进行实现。以下为该功能的一些核心代码,具体可以通过本文末的链接进行工程源码下载。

一、播放器电子放大功能操作

    步骤一:播放RTSP 视频流后,点击开启电子放大功能按钮,如下图:

在这里插入图片描述

    步骤二:点击按钮后,视频上会出现电子放大的变倍信息,本功能支持鼠标滚轮进行图形放大与缩小,也支持鼠标拖动视频进行显示,如下图:

在这里插入图片描述

    步骤三:鼠标滚轮操作电子放大的放大缩小功能,如下图:

在这里插入图片描述

    步骤四:按住鼠标左键后,可以拖动视频进行显示,如下图:

在这里插入图片描述

    步骤五:点击关闭电子放大按钮后,恢复正常显示:

在这里插入图片描述

二、电子放大相关源码

CVideoPlayer鼠标事件:

void CVideoPlayer::OnLButtonDown(UINT nFlags, CPoint point)
{myprint("OnLButtonDown");SetFocus();if (m_bDigitalZoom) // Digital Zoom{m_D3DRender.SetStartPt(point);m_bLBtnDown = true;}CStatic::OnLButtonDown(nFlags, point);
}void CVideoPlayer::OnLButtonUp(UINT nFlags, CPoint point)
{m_bLBtnDown = false;ReleaseCapture();
}BOOL CVideoPlayer::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
{    myprint("OnMouseWheel");CRect rcClient;GetClientRect(&rcClient);CPoint ptTemp = pt;::ScreenToClient(m_hWnd, &ptTemp);if (!PtInRect(&rcClient, ptTemp))return FALSE;m_ptWheel = pt;::ScreenToClient(m_hWnd, &m_ptWheel);if (m_bDigitalZoom){zDelta /= WHEEL_DELTA;myprint("OnMouseWheel zDelta:%d", zDelta);if (zDelta > 0){for (short i = 0; i < zDelta; i++)m_D3DRender.ZoomOut();}else{for (short i = 0; i > zDelta; i--)m_D3DRender.ZoomIn();}return TRUE;}return FALSE;
}void CVideoPlayer::OnMouseMove(UINT nFlags, CPoint point)
{if (m_bPlaying == false)return;SetFocus();if (m_bLBtnDown && m_bDigitalZoom){CRect rc;GetClientRect(&rc);m_D3DRender.MoveToPtStart(point, rc);}CStatic::OnMouseMove(nFlags, point);
}

CD3DRender处理:

//zoom
void CD3DRender::ZoomIn()
{m_Radius += m_RadiusFirst / DEFAULT_ZOOM_TIMES;myprint("ZoomIn m_RadiusFirst:%lf m_Radius:%lf\n", m_RadiusFirst, m_Radius);if (m_Radius >= DEFAULT_ZOOM_TIMES){m_Radius = DEFAULT_ZOOM_TIMES;}D3DXVECTOR3 position(-x_curCam, y_curCam, sinf(m_Angle) * m_Radius);D3DXVECTOR3 target(-x_curCam, y_curCam, 0.0f);D3DXVECTOR3 up(0.0f, 1.0f, 0.0f);D3DXMATRIX V;D3DXMatrixLookAtLH(&V, &position, &target, &up);m_pDirect3DDevice->SetTransform(D3DTS_VIEW, &V);
}void CD3DRender::ZoomOut()
{m_Radius -= m_RadiusFirst / DEFAULT_ZOOM_TIMES;myprint("ZoomOut m_RadiusFirst:%lf m_Radius:%lf\n", m_RadiusFirst, m_Radius);if (m_Radius <= 1.1f){m_Radius = 1.1f;}D3DXVECTOR3 position(-x_curCam, y_curCam, sinf(m_Angle) * m_Radius);D3DXVECTOR3 target(-x_curCam, y_curCam, 0.0f);D3DXVECTOR3 up(0.0f, 1.0f, 0.0f);D3DXMATRIX V;D3DXMatrixLookAtLH(&V, &position, &target, &up);m_pDirect3DDevice->SetTransform(D3DTS_VIEW, &V);
}void CD3DRender::ResetZoom()
{x_Cam = x_curCam = 0;y_Cam = y_curCam = 0;m_Radius = m_RadiusFirst;m_Angle = m_AngleFirst;D3DXVECTOR3 position(cosf(m_Angle) * m_Radius, 0.0f, sinf(m_Angle) * m_Radius);D3DXVECTOR3 target(0.0f, 0.0f, 0.0f);D3DXVECTOR3 up(0.0f, 1.0f, 0.0f);D3DXMATRIX V;D3DXMatrixLookAtLH(&V, &position, &target, &up);m_pDirect3DDevice->SetTransform(D3DTS_VIEW, &V);
}HRESULT CD3DRender::AppendZoomTextInfo(TCHAR* sText, CRect rcText) 
{my_mutex_lock(m_pDrawMutex);memset(&m_DigZoomInfo, 0, sizeof(StreamInfo_t));_sntprintf_s(m_DigZoomInfo.sText, sizeof(m_DigZoomInfo.sText), sizeof(m_DigZoomInfo.sText) - 1, "%s", sText);m_DigZoomInfo.rcText.top = rcText.top;m_DigZoomInfo.rcText.left = rcText.left;m_DigZoomInfo.rcText.right = rcText.right;m_DigZoomInfo.rcText.bottom = rcText.bottom;my_mutex_unlock(m_pDrawMutex);return 0;
}HRESULT CD3DRender::ClearZoomTextInfo()
{my_mutex_lock(m_pDrawMutex);memset(&m_DigZoomInfo, 0, sizeof(StreamInfo_t));my_mutex_unlock(m_pDrawMutex);return 0;
}void CD3DRender::D3DDrawZoomText()
{my_mutex_lock(m_pDrawMutex);m_pD3DFont->DrawText(NULL, m_DigZoomInfo.sText, -1, &m_DigZoomInfo.rcText, DT_LEFT/*DT_CENTER | DT_VCENTER*/, D3DCOLOR_XRGB(220, 20, 60));my_mutex_unlock(m_pDrawMutex);
}void CD3DRender::SetStartPt(::CPoint pt)
{pt_start = pt;x_Cam = x_curCam;y_Cam = y_curCam;
}void CD3DRender::MoveToPtStart(::CPoint pt, CRect rc)
{float x = x_Cam + 40.0f * ((float)m_Radius / 20.0f) * (float)(pt.x - pt_start.x) / (float)(rc.right - rc.left);float y = y_Cam + 40.0f * ((float)m_Radius / 20.0f) * (float)(pt.y - pt_start.y) / (float)(rc.bottom - rc.top);x_curCam = x;y_curCam = y;myprint("position( %f, %f, %f)  x_Cam = %f, y_Cam = %f\n", x, y, sinf(m_Angle) * m_Radius, x_Cam, y_Cam);myprint("rc(%d, %d, %d, %d)", rc.left, rc.top, rc.right, rc.bottom);D3DXVECTOR3 position(-x, y, sinf(m_Angle) * m_Radius);D3DXVECTOR3 target(-x, y, 0.0f);D3DXVECTOR3 up(0.0f, 1.0f, 0.0f);D3DXMATRIX V;D3DXMatrixLookAtLH(&V, &position, &target, &up);m_pDirect3DDevice->SetTransform(D3DTS_VIEW, &V);
}

三、相关下载

链接1: 可执行exe下载
链接2: 播放器工程源码下载

http://www.yayakq.cn/news/396947/

相关文章:

  • 怎么在在慧聪网上做网站推广网站开发工程师需要具备的综合素质
  • pytson做网站安全吗计算机应用网站建设与维护是做什么
  • 公司网站建设的建议搜索引擎营销概念
  • 在线免费网站seo站长工具
  • 网站建设费用如何收取中心网站建设
  • 个人可以做电商网站吗前端个人介绍网站模板下载
  • 四川省建设厅官方网站三内人员宽屏绿色新闻资讯网站织梦模板
  • 自己设置网站怎么做wordpress如何写网站
  • 只做动漫的网站网络推广培训中心
  • 电子商务系统的构成网站没有收录从哪开始做优化
  • 苏州企业网站制作服务无锡手工活外发加工网
  • 唐山地区网站开发公司如何做明星的个人网站
  • 网站建设综合技能实训四川建设安全生产监督管理局网站
  • 进下加强新闻宣传网站建设博客自适应模板
  • 用易语言做抢购网站软件下载那个做图网站叫什么
  • 比较好的响应式网站网络规划设计师企业数据中心机房建设
  • 网站 运营课程网站建设目标任务
  • 做网站哪便宜中国建设银行官网版本
  • 网站如何解析秒速网站建设
  • 网站设计申请书不用安装即可玩的游戏
  • 学做php网站有哪些如何在淘宝上做自己的网站
  • 专门做自助游攻略的网站是哪个网站开发与设计教程pdf
  • 网站做全景图网站模板英文
  • 建设商务网站作用大学网页设计期末作品
  • 区块链开发公司wordpress 搜索引擎优化
  • 模块化网站建设系统网站更换模板
  • 网站优化公司免费咨询公众号开发者密钥有什么用
  • 广州网站建设网站推广精简wordpress博客程序
  • 做调像什么网站找活云服务器 多个网站
  • 定制网站的好处有哪些网站开发需要团队