<十三>音频播放

在上一篇文章中,我是在Qt4平台上调用本地发音的,后来由于用到JSON解析,就将平台转到了Qt5,因为Qt5自带解析JSON的类。然后发现上一篇文章的方法无法运行,当然网上可以找到解决方法,我在这里直接调用Qt自带的类进行网络音频播放和本地播放。比较适用于单词的网上发音和无网情况下的本地发音,而不用将音频文件下载下来,占用太多内存。

为了简便起见,工程里只有一个main.cpp文件,不要忘了在.pro文件中加入下面两行:


  QT +=  multimedia  
  CONFIG += qaxcontainer  

下面给出main.cpp文件:

#include "widget.h"  
#include <QApplication>  
#include<QtMultimedia/QMediaPlayer>  
#include<QUrl>  
#include<ActiveQt/QAxObject>  
int main(int argc, char *argv[])  
{  
    QApplication a(argc, argv);  
      
    QMediaPlayer *player = new QMediaPlayer();  
    player->setMedia(QUrl("http://media.shanbay.com/audio/us/hello.mp3"));  
    player->play();  
  
    QAxObject *speech= new QAxObject();  
    speech->setControl("SAPI.SpVoice");  
    speech->dynamicCall("Speak(QString,uint)","good",1);//这里换成中文也可以  
  
    return a.exec();  
}  

运行后,你会发现本地发音肯定没网络发音好,本地发音是电脑发音,这也是缺点之一。

文章导航