ubuntu下Qt Mutimedia 播放mp3文件注意事項

     要求:在ROS項目文件中添加qt界面類,點擊按鈕播放音頻文件。

1. 首先添加qt界面類,包含.ui .h .cpp文件,不再詳述,基本操作

2. 在界面中添加放聲音的按鈕,以便觸發函數,我是添加的tabwidget,需要切換幾個頁面,添加閱讀播放聲音的按鈕

這沒啥好寫的,都是基本的qt操作,不是我表達的重點。今天調試還算順利,下面簡答闡述一下有點坑的地方。

(1)播放音頻對象

tabwidget有好幾個page調用播放音頻的函數

在頭文件裏面聲明私有變量

private:
  QMediaPlayer *player;

在界面類的構造函數裏面new個對象

  ui->setupUi(this);
  player = new QMediaPlayer

然後調用播放函數

void IntroduceDialog::Playvideo(QString filepath)
{
    player->setMedia(QUrl::fromLocalFile(filepath));
    player->setVolume (50);
    player->play();
}

在遇到界面切換信號時需要將音頻暫停掉,免得重音

void IntroduceDialog::on_tabWidget_currentChanged(int index)
{
   player->pause();
}

(2) 編譯運行

在pro的qt文件裏是直接加一行

QT       += core gui multimedia

在ros項目裏有CMakeLists.txt 和packagexml

首先在CMakeLists文件添加qt庫

find_package(Qt5 REQUIRED Core Widgets SerialPort Multimedia)#added
set(QT_LIBRARIES Qt5::Widgets Qt5::SerialPort Qt5::Multimedia)#added

在此之前你需要安裝multimedia模塊以及libqt5multimedia5-plugins

sudo apt-get install qt57multimedia
sudo apt-get install libqt5multimedia5-plugins

在package.xml中添加

<build_depend>libqt5multimedia5-plugins</build_depend>

如果沒有這個編譯沒有問題,運行時就會出現以下錯誤

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

OK ,差不多就是這些了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章