2016-12-25 82 views
3

我尝试在OS X El Capitan v10.11.6上使用Qt5播放电影。 我使用QMediaPlayer,QMediaPlaylist和QVideoWidget进行播放。无法使用QMediaPlayer播放电影

编写与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(); 
} 

mainwindow.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 

mainwindow.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” 在同一个目录中。

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

+1

后'在二进制文件目录box.mp4'?尝试在命令行中运行这个程序,看看是否有一些输出。 –

+0

添加完整路径 – eyllanesc

+0

@Shueluel H:在命令行中运行程序,但得到相同的输出。 –

回答

1

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

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

之前

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