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 ,差不多就是这些了。

猜你喜欢

转载自blog.csdn.net/qq_30460905/article/details/93406614