制作一个播放器(一)
制作一个播放器(一)
制作一个播放器(二)
开发工具:Visual Studio 2019 cmake Qt5.15.2
推荐免费学习直播课程:C/C++Linux服务器开发高级架构师学习视频
运行所需要的libvlc.dll、libvlccore.dll 还有文件夹plugins
CMAKE_MINIMUM_REQUIRED(VERSION 3.10)SET(PRJ_NAME VlcPlayer)
PROJECT(${PRJ_NAME})IF(WIN32)SET(CMAKE_DEBUG_POSTFIX "_d")
ENDIF(WIN32)IF(NOT CMAKE_BUILD_TYPE)IF(WIN32)ELSE(WIN32)SET(CMAKE_BUILD_TYPE Debug)ENDIF(WIN32)ENDIF()IF(WIIN32)SET(CMAKE_SYSTEM_VERSION 10.0)
ENDIF(WIN32)MESSAGE(STATUS ${PROJECT_SOURCE_DIR})
MESSAGE(STATUS ${PROJECT_BINARY_DIR})
MESSAGE(STATUS ${CMAKE_BINARY_DIR})IF(WIN32)IF(CMAKE_CL_64)SET(BASELIB_PATH ${PROJECT_SOURCE_DIR}/bin/win64)ELSE(CMAKE_CL_64)SET(BASELIB_PATH ${PROJECT_SOURCE_DIR}/bin/win32)ENDIF(CMAKE_CL_64)
ENDIF(WIN32)
LINK_DIRECTORIES(${BASELIB_PATH})IF(WIN32)SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc")
ELSE(WIN32)SET(CMAKE_CXX_STANDARD 11)SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS}" -O0 -Wall -g3 -ggdb -D_DEBUG -DDEBUG)SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall -DNDEBUG")ADD_COMPILE_OPTIONS(-std=c++11)
ENDIF(WIN32)IF(WIN32)ADD_DEFINITIONS(-DUNICODE -D_UNICODE)SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi /Od")SET(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")IF(CMAKE_CL_64)SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/bin/win64/debug)SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/bin/win64/debug)SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/bin/win64/debug)SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/bin/win64/release)SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/bin/win64/release)SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/bin/win64/release)ELSE(CMAKE_CL_64)SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/bin/win32/debug)SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/bin/win32/debug)SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/bin/win32/debug)SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/bin/win32/release)SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/bin/win32/release)SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/bin/win32/release)ENDIF(CMAKE_CL_64)
ENDIF(WIN32)INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)IF(WIN32)IF(CMAKE_CL_64)SET(CMAKE_PREFIX_PATH "D:/Qt/5.15.2/msvc2019_64")ELSE(CMAKE_CL_64)SET(CMAKE_PREFIX_PATH "D:/Qt/5.15.2/msvc2019")ENDIF(CMAKE_CL_64)ELSE(WIN32)SET(CMAKE_PREFIX_PATH ${QTDIR}/5.15.2)
ENDIF(WIN32)ADD_SUBDIRECTORY(src/Player)
解决方案:在vlc.h 中添加typedef __int64 ssize_t
#include <QApplication>
#include "vlc/vlc.h"
#include <QDialog>
#include <QWidget>
#include <QHBoxLayout>#define qtu(str) ((str).toUtf8().constData())const char* const vlc_args[] = {"-I","dummy","--ignore-config","--rtsp-frame-buffer-size=1000000","--rtsp-tcp",
};int main(int argc, char* argv[])
{QApplication a(argc, argv);QDialog dlg;QWidget w(&dlg);QHBoxLayout* pHlayout = new QHBoxLayout(&dlg);pHlayout->addWidget(&w);dlg.resize(640, 480);w.setAttribute(Qt::WA_QuitOnClose, true);QObject::connect(&a, &QApplication::lastWindowClosed, &a, &QApplication::quit);int argc2 = sizeof(vlc_args) / sizeof(vlc_args[0]);QString strUrl = "rtsp://wowzaec2demo.streamlock.net/vod/mp4";libvlc_instance_t* pInstance = libvlc_new(argc2, vlc_args);libvlc_media_t* pVlcMedia = libvlc_media_new_location(pInstance, qtu(strUrl));libvlc_media_player_t* pVlcMediaPlayer = libvlc_media_player_new_from_media(pVlcMedia);libvlc_media_player_set_hwnd(pVlcMediaPlayer, (void *)w.winId());libvlc_media_release(pVlcMedia);libvlc_media_player_play(pVlcMediaPlayer);dlg.exec();//release libvlc_media_player_stop(pVlcMediaPlayer);libvlc_media_player_release(pVlcMediaPlayer);return 0;
}
1、本程序为64位,需要32位的话,需要自行下载vlc开发包
2、Qt 安装路径,需要在CMakeLists.txt 中修改,bin 目录下copy64debug.bat/copy64release.bat 中的Qt路径也需要改成你本机的版本
4、运行工程前,需要执行对应的脚本,拷贝lib和运行库到对应的路径下面,生成后在运行一次,把Qt对应的依赖放到对应的路径下面。
制作一个播放器(一)相关推荐
- 使用AVPlayer制作一个播放器
代码地址如下: http://www.demodashi.com/demo/11685.html AVPlayer 是一个强大的视频播放器,可以播放多种格式的视频,缺点是没有控制界面,需要自己去实现. ...
- 制作一个播放器(二)
制作一个播放器(一) 制作一个播放器(二) 接着上一章的热身,咱们继续写播放器.上一篇中咱们用的是句柄的方式来播放视频.实际开发中,我们更多的是把数据给回调出来,这样更好的去显示视频,处理视频.这期, ...
- 树莓派3B qt+mplayer制作音乐播放器(10)
内容 树莓派3B qt+mplayer制作音乐播放器:播放.暂停.上一曲.下一曲,音量调节. 平台:树莓派+qt+mplayer 1.配置 qt安装见此: https://blog.csdn.net/ ...
- winform制作音乐播放器
winform制作音乐播放器 本文利用C# 调用Windows自带的Windows Media Player 打造一款属于自己的音乐播放器,以供学习分享使用,如有不足之处,还请指正. 概述 Windo ...
- flash制作swf播放器
AS3的 LoaderInfo 类为我们加载外部资源提供了更多的可控信息,以前制作SWF播放器的两大难题终于可以得到解决: ◦获得加载SWF的舞台大小以缩放到适合尺寸显示 LoaderInfo 的 w ...
- 利用python制作简单播放器
在这里可以制作小播放器的界面,objectName 是每一个图片,图标每一个部位的名字,它们每个地方都有一个属于自己的小名字. windowtitle 可以为自己的小播放器取一个好听又可爱的名字. w ...
- 用Python制作简易播放器(电子钢琴) mac系统
用Python制作简易播放器(电子钢琴) 开发环境:Python3.7 Mac OS 思路: 先根据需要设计GUI的样式,并思考需要定义什么功能 把功能写出来 把功能填入GUI之中 用曲子测试完整的程 ...
- 基于Arduino Uno开发板制作音乐播放器
基于Arduino Uno开发板制作音乐播放器 本文将基于Arduino开发板实现一个音乐播放器. 利用Arduino Uno读取sd卡模块中内存卡的音乐,传输信号到扬声器进行播放. 一.项目软硬件简 ...
- unity制作简易播放器
unity制作简易播放器 先上效果图 我采用的解决方案是unity内置的video player,通过UGUI-rawimage进行显示,当然也可以使用quad方式,会更简单点. 1.界面搭建 首先需 ...
最新文章
- 进一步理解:inline-block,vertical-align,line-height
- js date转成 时间字符串_秋招快要开始了,前端笔试中的坑位-JS隐式转换问题
- 【数据结构1.3笔记】研究内容
- B1023 组个最小数 (20分)
- 复练-软考网规-虚拟化专题
- GNS3 Windows安装
- 老李分享:单元测试的 5 个错误
- win7 docker centos安装mysql_CentOS 7 使用docker安装mysql
- ies文件 vray_VRAY IES灯与光域网的灯有什么不同 VRAY IES有什么特性
- cad解除块的快捷命令_47个快捷键50个CAD技巧,快收藏起来
- Paused before potential out-of-memory crash页面崩溃
- java生成树形Excel_java poi导出树形结构到excel文件
- win10下的linux占用大小,详解Win10系统上使用Linux之前要知道的几件事
- Virus_JS3_PyAnalysisAndSummary
- python地图匹配_基于隐马尔科夫模型(HMM)的地图匹配(Map-Matching)算法
- R语言 tidyverse 之数据处理:dplyr (中)
- 如何学习安卓软件开发?(转自知乎)
- 常见设计模式快速记忆
- 微信论坛交流小程序系统毕业设计毕设(8)毕业设计论文模板
- 一文带你了解Kafka【一看就懂】
热门文章
- 端口号占用问题 serveral ports(8080,8009) are already in use
- sql sever 数据类型 text 和 varchar 在 equal to 运算符中不兼容。
- 2022-2028全球飞机抬头显示(飞机HUD)行业调研及趋势分析报告
- Java File.listFiles方法具有什么功能呢?
- 京东商业提升事业部广告质量部招聘2023届算法实习生
- Chrome下载官网
- 项目计划管理软件:GanttProject
- [答疑]运维记录台账本子识别为一个现状业务实体,妥否
- 国外Essay写作能力怎么正确提升?
- 攻防世界web新手- fileinclude宜州网信办