3

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」が存在することを確認します。

問題はどこですか?この問題を解決するには、ソース コードをどのように修正すればよいですか?

4

1 に答える 1

1

でメディア ファイル パスをフル パスに変更するだけですmainwindow.cpp

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

playlist->addMedia(QUrl::fromLocalFile("/path/to/box.mp4"));
于 2016-12-26T06:31:59.370 に答える