参考链接
- 《基于 FFmpeg + SDL 的视频播放器的制作》课程的视频_雷霄骅的博客-CSDN博客_雷霄骅ffmpeg视频教程
- 小学期课程资料 - 基于FFmpeg+SDL的视频播放器的制作.zip_免费高速下载|百度网盘-分享无限制
- 辅助参考链接
- VS自动链接到Windows上随vcpkg安装的SDL2库 | 码农俱乐部 - Golang中国 - Go语言中文社区
- Simple DirectMedia Layer - SDL version 2.0.22 (stable)
- Microsoft Visual Studio2019环境下搭建FFmpeg开发环境_MY CUP OF TEA的博客-CSDN博客
注意事项
- vcpkg如果不指定具体安装方式,默认安装x86架构的包
- vcpkg本人安装位置 C:\Users\32157\vcpkg
Win安装/配置SDL2
- 使用./vcpkg.exe search sdl2 查找sdl2的对应版本
- 本次安装的是 sdl2 2.0.22#1 x86架构
- 使用命令 ./vcpkg.exe install sdl2 进行安装
- 将下载的库集成到全局中
- ./vcpkg.exe integrate install
测试
测试代码
- 参考链接
- 阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台
- SDL 库安装、环境配置与使用 - 简书
- #define SDL_MAIN_HANDLED 需要加上这句话,否则会出错
- 显示 :无法解析的外部符号 _main,该符号在函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中被引用
- //由于SDL内部重新定义了main,因此main函数需要写成如下形式 int main(int argc,char* argv[])
- 添加 #define SDL_MAIN_HANDLED 这个之后,即使main函数为空,也不会报错
测试代码1
// test_ffmpeg.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#define SDL_MAIN_HANDLED
#include <iostream>
#include <SDL2/SDL.h>//由于SDL内部重新定义了main,因此main函数需要写成如下形式
int main(int argc,char* argv[])
{//初始化SDLif ((SDL_Init(SDL_INIT_AUDIO | SDL_INIT_VIDEO) == -1)) {//初始化失败,打印错误信息std::cout << "Could not initialize SDL:" << SDL_GetError();}else {std::cout << "SDL initialize OK!";}//结束SDLSDL_Quit();return 0;
}// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单// 入门使用技巧:
// 1. 使用解决方案资源管理器窗口添加/管理文件
// 2. 使用团队资源管理器窗口连接到源代码管理
// 3. 使用输出窗口查看生成输出和其他消息
// 4. 使用错误列表窗口查看错误
// 5. 转到“项目”>“添加新项”以创建新的代码文件,或转到“项目”>“添加现有项”以将现有代码文件添加到项目
// 6. 将来,若要再次打开此项目,请转到“文件”>“打开”>“项目”并选择 .sln 文件
测试代码2
// test_ffmpeg.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#define SDL_MAIN_HANDLED
#include <iostream>
#include <SDL2/SDL.h>//由于SDL内部重新定义了main,因此main函数需要写成如下形式
int main(int argc, char* argv[])
{SDL_Window* window = SDL_CreateWindow("demo", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, SDL_WINDOW_SHOWN);SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);bool quit = false;SDL_Event event;SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);while (!quit) {while (SDL_PollEvent(&event)) {switch (event.type) {case SDL_QUIT:quit = true;break;case SDL_MOUSEMOTION:if (SDL_GetMouseState(NULL, NULL) & SDL_BUTTON(1))SDL_RenderDrawPoint(renderer, event.motion.x, event.motion.y);break;}}SDL_RenderPresent(renderer);SDL_Delay(1000 / 60);}SDL_DestroyWindow(window);SDL_DestroyRenderer(renderer);return 0;
}// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单// 入门使用技巧:
// 1. 使用解决方案资源管理器窗口添加/管理文件
// 2. 使用团队资源管理器窗口连接到源代码管理
// 3. 使用输出窗口查看生成输出和其他消息
// 4. 使用错误列表窗口查看错误
// 5. 转到“项目”>“添加新项”以创建新的代码文件,或转到“项目”>“添加现有项”以将现有代码文件添加到项目
// 6. 将来,若要再次打开此项目,请转到“文件”>“打开”>“项目”并选择 .sln 文件