Eve1yn0 2023-03-23 11:38 采纳率: 64.5%
浏览 93
已结题

关于Qt视频文件无法播放的问题

如下代码所示,将MP4格式的视频文件添加到资源文件中后,代码中使用资源文件的相对路径无法播放视频,但是使用绝对路径(没有放入资源文件中)就可以正常播放,什么原因呢,以及解决方法是什么?

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    QVideoWidget * videoWin = new QVideoWidget(this);
    videoWin->resize(400,300);
    QMediaPlayer * player = new QMediaPlayer(this);
    player->setVideoOutput(videoWin);

//视频使用绝对路径可以播放
//    player->setMedia(QMediaContent(QUrl::fromLocalFile("D:/QtTest1/test.mp4")));
    player->setMedia(QMediaContent(QUrl::fromLocalFile(":/res/test.mp4")));
    player->play();
}
  • 写回答

3条回答 默认 最新

  • mideum 2023-03-23 12:34
    关注

    Qt的媒体组件应该都没有做资源文件的特殊处理,而媒体组件最终都是调用外部库进行播放,外部库从资源地址是无法读取文件内容的
    可以尝试使用QFile先读取文件,然后将QFile作为QIODevice传入setMedia的stream参数

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月31日
  • 已采纳回答 3月23日
  • 创建了问题 3月23日

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来