记:在银河麒麟下(ARM版)用QT播放音频文件时没有声音,但实际点击文件播放却有声音。
1. 网上方法
①在网上搜了一下,大部分说是由于在程序运行目录下缺少audio文件夹,需要从Qt安装目录下拷贝过来。
/opt/qt-5.9.2/plugins/audio
②有的说没有声音外设,未检测到播放工具,插上耳机就好。
不符合本人的情况 = =
2. 实测
测试代码:
QString strPath = QApplication::applicationDirPath() + "/warning.wav";
QSoundEffect* pPlayer = new QSoundEffect();
pPlayer->setSource(strPath);
pPlayer->setLoopCount(QSoundEffect::Infinite);
pPlayer->setVolume(1);
pPlayer->play();
运行报错:
QSoundEffect(qaudio): Error decoding source
此时需要将
pPlayer->setSource(strPath);
改为
pPlayer->setSource(QUrl::fromLocalFile(strPath));
再运行,报错:
ALSA lib conf.c:4133:(snd_config_update_r) Cannot access file /opt/qt-5.9.2/share/alsa/alsa.conf
no alsa devices avaliable
此时,看到这条报错,便豁然开朗,根据提示,在QT安装目录下,并未发现
/opt/qt-5.9.2/share/alsa/alsa.conf,于是我从其他地方拷贝一个share文件夹到QT安装目录下,再运行,已经有声音了。
注:由于我在其他电脑上刚好有,所以便没在深究,如果没有的话,可能需要重新编译QT,然后在编译时修改配置,编译参数添加上-alsa选项(音频播放)
2022-11-18
Alxa China.ZLG