这段时间一直在研究用QT做个播放器的事情,发现如下几个问题,特来记录与分享
1.QWidget在设置全屏与还原时,他的窗口句柄是会变的!在设置全屏以及还原之后 qDebug <<(HWND)Widget->winId();就可以看见。这个问题,我的解决方法是,在这个widget里面 再放一个widget。。 然后布局一下以使他可以跟着父窗口全屏而可以全屏。
2. SDL渲染界面时,界面大小改变画面就会停留在最后一帧,但是声音还是会继续播放,这种问题,时需要修改SDL源码,然后编译生成新的lib文件与DLL文件的。
下载SDL2源码,重新编译
修改 SDL_video.c 的 void
SDL_OnWindowResized(SDL_Window * window)函数
将 SDL_SendWindowEvent(window, SDL_WINDOWEVENT_SIZE_CHANGED, window->w, window->h);
改为 SDL_SendWindowEvent(window, SDL_WINDOWEVENT_RESIZED, window->w, window->h);
即可
3.如果你在使用ffmpeg库时, 发现35——45个大部分是这种类型的错误时“expected initializer before 'int64_t'”,请搜索关键词“inline”,若所有问题都与这个关键词有关,那么恭喜你 找到了问题所在,这种问题发生的方式很多样,我的解决方法是,在使用ffmpeg的头文件中 注释了
“#define inline _inline” 。
4.这个记录是针对我这种XX来说的。。 一定要将动态链接库。。放置在deBug运行目录下, 哎,不然运行就会崩溃。
暂时记录至此,如果有疑问,欢迎留言或加本人QQ讨论。