2016-12-25 8 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

#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"이 같은 디렉토리에 존재

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

어디에 문제가 있습니까? 이 문제를 해결하기 위해 어떻게 소스 코드를 수정해야합니까?

+1

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

전에

는'바이너리 디렉토리에 box.mp4' 있습니까? 이 프로그램을 명령 줄에서 실행하고 출력이 있는지 확인하십시오. –

+0

전체 경로를 추가하십시오 – eyllanesc

+0

@Shmuel H : 명령 행에서 프로그램을 실행하지만 동일한 출력을 얻으십시오. –

답변

1

미디어 파일 경로를 전체 경로 (mainwindow.cpp)로 수정하면됩니다.

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