【Qt编程】基于Qt的词典开发系列<十三>音频播放-阿里云开发者社区

开发者社区> tengweitw> 正文

【Qt编程】基于Qt的词典开发系列<十三>音频播放

简介:        在上一篇文章中,我是在Qt4平台上调用本地发音的,后来由于用到JSON解析,就将平台转到了Qt5,因为Qt5自带解析JSON的类。然后发现上一篇文章的方法无法运行,当然网上可以找到解决方法,我在这里直接调用Qt自带的类进行网络音频播放和本地播放。
+关注继续查看
       在上一篇文章中,我是在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();
}

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


基于Qt的词典开发系列

  1. 词典框架设计及成品展示
  2. 本地词典的设计
  3. 开始菜单的设计
  4. 无边框窗口的缩放与拖动
  5. 无边框窗口的拖动
  6. 界面美化设计
  7. 调用网络API
  8. 用户登录及API调用的实现
  9. JSON数据解析
  10. 国际音标的显示
  11. 系统托盘的显示
  12. 调用讲述人
  13. 音频播放
  14. 自动补全功能
  15. HTML特殊字符及正则表达式
  16. 后序
作品下载地址(发布版)http://download.csdn.net/detail/tengweitw/8548767
作品下载地址(绿色版)http://download.csdn.net/detail/tengweitw/8830495
源码下载地址http://download.csdn.net/detail/tengweitw/8830503

原文:http://blog.csdn.net/tengweitw/article/details/38555787

作者:nineheadedbird



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【中秋赏月】信手拈来一款中秋节日历提醒服务
关于这次中秋征文的内容,自己确实想了好久,因为作为一名后端研发工程师,不太想去搞一个酷炫的界面,感觉那是前端同学的蛋糕。想利用自己的技能优势,搞一波儿事情。同时又想有所创新,搞点别人没有搞过的,终于昨天确定了文章的内容——开发一款中秋节日历提醒服务,今天开始正式干活儿。
5 0
【DBMS 数据库管理系统】数据仓库特征 ( 特征一 : 面向主题组织数据 | 特征二 : 数据集成 | 特征三 : 数据不可更新 | 特征四 : 随时间不断变化 )
【DBMS 数据库管理系统】数据仓库特征 ( 特征一 : 面向主题组织数据 | 特征二 : 数据集成 | 特征三 : 数据不可更新 | 特征四 : 随时间不断变化 )
7 0
Swagger Editor进行API设计
Swagger Editor进行API设计
5 0
【FluidSynth】FluidSynth 简介 ( 相关资源链接 | 简介 | 特征 )
【FluidSynth】FluidSynth 简介 ( 相关资源链接 | 简介 | 特征 )
9 0
【DBMS 数据库管理系统】数据库 -> 数据仓库 ( 数据处理类型 | 传统数据库 | 数据库不适用于分析型应用 )
【DBMS 数据库管理系统】数据库 -> 数据仓库 ( 数据处理类型 | 传统数据库 | 数据库不适用于分析型应用 )
6 0
一份 Spring Boot 项目搭建模板
一份 Spring Boot 项目搭建模板 前言 建立一个全新的项目,或者把旧的庞大的项目,进行拆分成多个项目。在建立新的项目中,经常需要做一
11 0
一条SQL查询语句是如何执行的?
还不知道SQL查询语句是如何执行的?看这篇,看不懂来打我吧
9 0
【计算机网络】计算机网络 OSI 参考模型 ( 计算机网络分层结构 | OSI 七层参考模型 | 应用层 | 表示层 | 会话层 | 传输层 | 网络层 | 数据链路层 | 物理层 )(一)
【计算机网络】计算机网络 OSI 参考模型 ( 计算机网络分层结构 | OSI 七层参考模型 | 应用层 | 表示层 | 会话层 | 传输层 | 网络层 | 数据链路层 | 物理层 )(一)
10 0
18 个 Java8 日期处理的实践,太有用了!
Java 8 日期处理 Java 8 推出了全新的日期时间API,在教程中我们将通过一些简单的实例来学习如何使用新API。
5 0
【Android 异步操作】Timer 定时器 ( Timer 与 TimerTask 基本使用 | Timer 定时器常用用法 | Timer 源码分析 )
【Android 异步操作】Timer 定时器 ( Timer 与 TimerTask 基本使用 | Timer 定时器常用用法 | Timer 源码分析 )
4 0
+关注
tengweitw
所在学校:西电 兴趣爱好:编程、英语,象棋,乒乓球 email:771257840@qq.com
159
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载