3

アプリで QVideoWidget をセットアップしようとしていますが、オーディオ/ビデオが得られません。これは、関連するオブジェクトを作成する方法です:

m_player = new QMediaPlayer;

m_playlist = new QMediaPlaylist(m_player);
m_playlist->addMedia(QUrl::fromLocalFile("/home/username/Documents/test.mp4"));

m_widgetVideo = new QVideoWidget;
m_player->setVideoOutput(m_widgetVideo);

m_layout = new QHBoxLayout(this);
m_layout->addWidget(m_widgetVideo);
this->setLayout(m_layout);

m_playlist->setCurrentIndex(0);
m_player->play();

私が得るのは黒い画面だけで、オーディオもビデオもありません。ここに MP4 ファイルを投稿できるかどうかわかりません (YouTube からダウンロードしたテスト ファイルです)。情報が必要な場合は、私に尋ねてください。入手します。テスト ファイルで ffprobe を実行した結果は次のとおりです: http://pastebin.com/xpMYbApY

QMediaPlayer->duration();  = -1
QMediaPlayer->supportedMimeTypes(); = ()
QMediaPlayer->errorString() = ""

また、これらの gstreamer パッケージがあります。

gstreamer0.10-alsa
gstreamer0.10-ffmpeg
gstreamer0.10-nice
gstreamer0.10-plugins-bad
gstreamer0.10-plugins-bad-multiverse
gstreamer0.10-plugins-base
gstreamer0.10-plugins-base-apps
gstreamer0.10-plugins-good
gstreamer0.10-plugins-ugly
gstreamer0.10-pulseaudio
gstreamer0.10-tools
gstreamer0.10-x

gst-launch-0.10 はファイルを完全に再生しますが、これは Qt がインストールされている GStreamer コーデックを実際に見つけられないということですか?

4

2 に答える 2

6

問題は QMediaPlaylist でした。何らかの理由で、機能していませんでした。それを修正するために私がしなければならなかったのは:

m_player->setMedia(QUrl::fromLocalFile("path/to/file"));
于 2013-11-15T14:34:23.627 に答える
2

これは古い問題であることはわかっていますが、2 年後、同じ問題に遭遇しました。コメントを残すのに十分な担当者ポイントがないため、これを回答として投稿しています。

これは私のために働いた:

playlist = new QMediaPlaylist;
playlist->addMedia(QUrl("http://example.com/movie1.mp4"));
playlist->addMedia(QUrl("http://example.com/movie2.mp4"));
playlist->addMedia(QUrl("http://example.com/movie3.mp4"));
playlist->setCurrentIndex(1);

player = new QMediaPlayer;
player->setPlaylist(playlist);

videoWidget = new QVideoWidget;
player->setVideoOutput(videoWidget);
videoWidget->show();

player->play();

ここからそのまま撮影

@wingleaderの答えの理由の部分については、私は推測しています

m_playlist = new QMediaPlaylist(m_player);

はプレイリストをプレーヤーに論理的にペアレント化していましたが、m_playerのプレイリスト プロパティを設定していませんでした。

HTH

于 2016-06-08T04:01:06.073 に答える