本文主要是介绍DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x800c000d,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
报出这个问题,应该是对给的url解析不正确,我给的是rtsp的视频流地址,应该是对该格式解析异常。
所以参考两篇文:
QT无法播放视频:报错:DirectShowPlayerService::doRender: Unresolved error code 0x80040266
用QML实现简单音视频播放器的实践
根据报错和文中提示可以知道:
在Windows系列(Windows XP、Windows 7、Windows 8)平台上,用QML的MediaPlayer控件配合VideoOutput对音频文件和视频文件进行播放,运行时会报错:
DirectShowPlayerService::doRender: Unresolved error code 80040266
或者我这个错误
DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x800c000d
chatGPT相关回答:
解决方法,安装有关DirectShowService解码器LAV Filters
Qt在windows上的多媒体播放功能是使用系统的DirectShow(底层是使用DirectShowPlayerService),所以安装或者更新DirectShow解码器就行了。
Qt在Linux下使用gstreamer,Windows下使用directshow。总之,Qt没有直接使用解码库,而是对平台相关的播放器框架做了封装,提供了平台无关的API。gstreamer依赖ffmpeg,它里面的很多元素是基于ffmpeg实现的。因此,Linux下Qt的自带的mediaplayer需要安装gstreamer-0.10-ffmpeg。
LAV Filters下载链接:
Releases · Nevcairiel/LAVFilters (github.com)
安装位置在你的qt安装目录。
安装完成后,在运行程序,视频可以正常播放。
这篇关于DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x800c000d的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!