欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ROS Qt5 librviz人机交互界面开发九(调用外部Qt库,实现播放音频)

程序员文章站 2022-06-05 12:37:15
...

我们知道在原生Qt环境中为qt添加外部库的话直接在pro文件里面添加就行了
但是我们的GUI项目是利用cmakelist.txt进行编译的,因此我们添加外部库时只能在dcmakelist.txt中进行添加

这里我主要想实现播放音频的功能,实现返航和设置返航点的语音提示
ROS Qt5 librviz人机交互界面开发九(调用外部Qt库,实现播放音频)
则就需要添加 QMultimedia库

一,安装该库

使用系统命令行安装Multimedia库

sudo apt-get install qtmultimedia5-dev

二,更改功能包的CmakeList.txt文件

在find_package添加Multimedia:

find_package(Qt5 REQUIRED Core Widgets Multimedia)

在Set添加Qt5::Multimedia:

set(QT_LIBRARIES Qt5::Widgets Qt5::Multimedia)

添加之后再次右键项目->执行cmake
不出意外的话就编译成功了

三,代码实现

这里我使用的是QSoundEffect,并非QMultimedia(因为此库会出现系统不支持的错误,我索性就直接使用QSound实现)
并且Qsound只支持wav格式的音频:

//刷新返航地点
void MainWindow::slot_set_return_point()
{
    if(media_player!=NULL)
    {
        delete media_player;
        media_player=NULL;
    }
    media_player=new QSoundEffect;
    media_player->setSource(QUrl::fromLocalFile("://media/refresh_return.wav"));
    media_player->play();

}
//返航
void MainWindow::slot_return_point()
{
    if(media_player!=NULL)
    {
        delete media_player;
        media_player=NULL;
    }
    media_player=new QSoundEffect;
    media_player->setSource(QUrl::fromLocalFile("://media/start_return.wav"));
    media_player->play();
}

四,完整项目地址

在我自己学习的过程中目前发现没有相关类似完整开源项目,为了帮助其他人少走弯路,我决定将自己的完整项目开源:
github
创作不易,如果本教程对你有帮助,关注或点个赞吧,或者github标个星哦~~
您的支持就是我最大的动力~

(转载请注明作者和出处:https://blog.csdn.net/qq_38441692 未经允许请勿用于商业用途)