3

Ubuntu 16.04 で公式の Qt 5.6 SDK を使用しています。mp3 ファイルを再生しようとすると、次のようなメッセージが表示されます。

defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"

コードは次のように単純です。

mMediaPlayer->setMedia(QUrl::fromLocalFile(myMp3File));
mMediaPlayer->play();

これは Android で動作し、以前は Ubuntu 14.04 マシンで動作していました。私は何が欠けていますか?必要なすべての gstreamer (ドキュメントによる) は、デフォルトで既にインストールされているようですが、それでも機能しません:

$ dpkg -l | grep gstream
ii  gir1.2-gstreamer-1.0                                 1.8.2-1~ubuntu1                                             amd64        GObject introspection data for the GStreamer library
ii  gstreamer1.0-alsa:amd64                              1.8.2-1ubuntu0.1                                            amd64        GStreamer plugin for ALSA
ii  gstreamer1.0-clutter-3.0                             3.0.18-1                                                    amd64        Clutter PLugin for GStreamer 1.0
ii  gstreamer1.0-fluendo-mp3:amd64                       0.10.32.debian-1                                            amd64        Fluendo mp3 decoder GStreamer 1.0 plugin
ii  gstreamer1.0-libav:amd64                             1.8.2-1~ubuntu1                                             amd64        libav plugin for GStreamer
ii  gstreamer1.0-plugins-bad:amd64                       1.8.2-1ubuntu0.1                                            amd64        GStreamer plugins from the "bad" set
ii  gstreamer1.0-plugins-bad-faad:amd64                  1.8.2-1ubuntu0.1                                            amd64        GStreamer faad plugin from the "bad" set
ii  gstreamer1.0-plugins-bad-videoparsers:amd64          1.8.2-1ubuntu0.1                                            amd64        GStreamer videoparsers plugin from the "bad" set
ii  gstreamer1.0-plugins-base:amd64                      1.8.2-1ubuntu0.1                                            amd64        GStreamer plugins from the "base" set
ii  gstreamer1.0-plugins-base-apps                       1.8.2-1ubuntu0.1                                            amd64        GStreamer helper programs from the "base" set
ii  gstreamer1.0-plugins-good:amd64                      1.8.2-1ubuntu0.1                                            amd64        GStreamer plugins from the "good" set
ii  gstreamer1.0-plugins-ugly:amd64                      1.8.2-1ubuntu0.1                                            amd64        GStreamer plugins from the "ugly" set
ii  gstreamer1.0-plugins-ugly-amr:amd64                  1.8.2-1ubuntu0.1                                            amd64        GStreamer plugins from the "ugly" set
ii  gstreamer1.0-pulseaudio:amd64                        1.8.2-1ubuntu0.1                                            amd64        GStreamer plugin for PulseAudio
ii  gstreamer1.0-tools                                   1.8.2-1~ubuntu1                                             amd64        Tools for use with GStreamer
ii  gstreamer1.0-x:amd64                                 1.8.2-1ubuntu0.1                                            amd64        GStreamer plugins for X11 and Pango
ii  libgstreamer-plugins-bad1.0-0:amd64                  1.8.2-1ubuntu0.1                                            amd64        GStreamer development files for libraries from the "bad" set
ii  libgstreamer-plugins-base1.0-0:amd64                 1.8.2-1ubuntu0.1                                            amd64        GStreamer libraries from the "base" set
ii  libgstreamer-plugins-good1.0-0:amd64                 1.8.2-1ubuntu0.1                                            amd64        GStreamer development files for libraries from the "good" set
ii  libgstreamer1.0-0:amd64                              1.8.2-1~ubuntu1                                             amd64        Core GStreamer libraries and elements
ii  libreoffice-avmedia-backend-gstreamer                1:5.1.4-0ubuntu1                                            amd64        GStreamer backend for LibreOffice

...そしてもちろん、私のサウンドはそれ以外の点では完璧に機能します。

4

1 に答える 1

2

まず、アプリケーションを QT_DEBUG_PLUGINS=1 で実行して、プラグイン エラーを確認します。

「libgstaudio-0.10.so.0」に関するエラーが表示される場合は、GStreamer のバージョンの問題です。公式の Qt バイナリには GStreamer 0.10 が必要なようです。

私が見つけた解決策:

  • パッケージマネージャーを使用して、ディストリビューションに同梱されている libqt を使用します。これは、適切な GStreamer バージョンで構築されているため、私が見つけた最良のソリューションです。さまざまな chroot を使用して、さまざまな GStreamer バージョンを組み込んだディストリビューション用のパッケージを作成しています。
  • ソースから Qt をコンパイルして Gstreamer 1.0 を有効にする: テストされていません
  • Gstreamer 0.10 をインストールします。このオプションはお勧めしません。必要な場合は、古いディストリビューションで chroot を使用することもお勧めしません。
于 2016-09-19T19:50:41.967 に答える