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日

悬赏问题

  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥15 树莓派5怎么用camera module 3啊
  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥15 Attention is all you need 的代码运行