【问题标题】:Cannot play movie with QMediaPlayer无法使用 QMediaPlayer 播放电影
【发布时间】:2017-05-10 04:44:06
【问题描述】:

我尝试在 OS X El Capitan v10.11.6 上使用 Qt5 播放电影。 我使用QMediaPlayer、QMediaPlaylist和QVideoWidget来播放。

和Qt的文档一样写源代码,但是它只显示黑窗,不播放任何电影。

这是我的源代码。

main.cpp

#include <QApplication>

#include "mainwindow.h"

int main(int argc, char* argv[])
{
    QApplication app(argc, argv);

    MainWindow mainwindow;
    mainwindow.show();

    return app.exec();
}

主窗口.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QWidget>

class QMediaPlayer;
class QMediaPlaylist;
class QVideoWidget;

class MainWindow : public QWidget
{
    Q_OBJECT

public:
    MainWindow(QWidget* parent = 0);

private:
    QMediaPlayer* player;
    QMediaPlaylist* playlist;
    QVideoWidget* videoWidget;
};

#endif

主窗口.cpp

#include <QtWidgets>
#include <QMediaPlayer>
#include <QMediaPlaylist>
#include <QVideoWidget>

#include "mainwindow.h"

MainWindow::MainWindow(QWidget* parent)
    : QWidget(parent)
{
    player = new QMediaPlayer;
    playlist = new QMediaPlaylist;
    videoWidget = new QVideoWidget;

    player->setPlaylist(playlist);
    player->setVideoOutput(videoWidget);

    playlist->addMedia(QUrl::fromLocalFile("box.mp4"));

    videoWidget->show();
    playlist->setCurrentIndex(1);
    player->play();

    QHBoxLayout* mainLayout = new QHBoxLayout;
    mainLayout->addWidget(videoWidget);

    setLayout(mainLayout);
}

我勾选“box.mp4”是否存在于同一目录中。

问题出在哪里?我应该如何修复源代码来解决这个问题?

【问题讨论】:

  • 二进制文件目录中有box.mp4吗?试试在命令行运行这个程序,看看有没有输出。
  • 添加完整路径
  • @Shmuel H:在命令行中运行程序,但得到相同的输出。
  • @eyllanesc:将文件路径改写为完整路径,我可以播放mp4了!谢谢。
  • 在你的问题中写出解决方案

标签: c++ qt qt5 qmediaplayer


【解决方案1】:

只需将mainwindow.cpp中的媒体文件路径修改为完整路径即可。

之前

playlist->addMedia(QUrl::fromLocalFile("box.mp4"));

之后

playlist->addMedia(QUrl::fromLocalFile("/path/to/box.mp4"));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    • 1970-01-01
    • 2015-08-29
    相关资源
    最近更新 更多