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

关于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日

悬赏问题

  • ¥15 MATLAB动图问题
  • ¥15 有段代码不知道怎么理解,const isToken = (config.headers || {}).isToken === false
  • ¥100 采用栈和深度优先算法对我的代码进行修改显示路径
  • ¥15 pointnet2包安装
  • ¥20 射频功率问题,解答者有酬谢!
  • ¥80 构建降雨和积水的预测模型
  • ¥15 #Qt Transform setTransform()在鼠标拖动移动视角是一致在原地不动,无法变换视角(细微观察似乎视图有在原地抖动),无法变换视角(细微观察似乎视图有在原地抖动)
  • ¥50 如何利用无人机拍摄的数码照片测量鸟卵的长短径
  • ¥100 github贡献者给与奖励
  • ¥15 使用DS18B20+ESP8266获取温度数据返回-127.00