ROS Qt5 librviz人机交互界面开发九(调用外部Qt库,实现播放音频)
程序员文章站
2022-06-05 12:37:15
...
我们知道在原生Qt环境中为qt添加外部库的话直接在pro文件里面添加就行了
但是我们的GUI项目是利用cmakelist.txt进行编译的,因此我们添加外部库时只能在dcmakelist.txt中进行添加
这里我主要想实现播放音频的功能,实现返航和设置返航点的语音提示
则就需要添加 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 未经允许请勿用于商业用途)
上一篇: aspjpeg组件通用加水印函数代码
下一篇: 排序算法—冒泡排序