Windows编程之多媒体

一、语音接口的使用:

第一步,安装MSSpeech SDK。

MSSpeech SDK可从网络课堂安装,也可在微软公司直接下载,安装完毕后具有了语音处理能力。

安装过程全选默认即可。

安装完毕后,在开始菜单中会增加MS Speech SDK 5.1,选择其中的tools->TTSAPP可用来测试语音安装是否正常
在这里插入图片描述

第二步,增加中文处理。

安装中文语言包(可从网络课堂安装,也可在微软公司直接下载)。安装选项可仅选择安装中文语音。安装完毕后可处理中文。
在安装完毕后可从TTSAPP中voice下拉框中找到中文简体。
若希望得到高质量的语音,或希望可处理繁体中文,可选择安装高质量库(网络课堂里有)也可在网上搜索相关语音库。

第三步。在VC6.0中添加相关路径:

进入VC,选择Tools->Options(VC中文版为工具->选项)得到如下对话框。寻找Directories(中文版为路径),在右边选择include路径。双击下方路径表中空行,可输入speechSDK 的include路径。点击右边的 在这里插入图片描述按钮可帮助选择路径。如图。
在这里插入图片描述
类似地再添加Library路径:
在这里插入图片描述
注意要选择lib目录下的386目录。

第四步 编写程序测试

下例中提供了三个函数。InitVoice初始化朗读,ReleaseVoice结束朗读,必须成对使用。在main函数执行时可多次使用Speak.。两个全局变量是语音需要,勿删除。

二、音乐输出

#include <atlbase.h>
#include <sapi.h>
#include <sphelper.h>CComPtr<ISpVoice>   pVoice;
HRESULT  hr;
int InitVoice()
{CComPtr<IEnumSpObjectTokens>	pEnum;CComPtr<ISpObjectToken>        pVoiceToken;int i;::CoInitialize(NULL);if(FAILED(hr=SpEnumTokens(SPCAT_VOICES,L"Language=804",NULL,&pEnum)))return 0;for(i=0;i<1;i++)	//这里可以根据已安装的语音库,多循环几次以变更语音{pVoiceToken.Release();pEnum->Next(1, &pVoiceToken, NULL);}if(FAILED(hr=pVoice.CoCreateInstance(CLSID_SpVoice)))return 0;if(FAILED(hr = pVoice->SetVoice(pVoiceToken)))return 0;return 1;
}
void ReleaseVoice()
{pVoice.Release();CoUninitialize();
}
void Speak(char *Txt)
{CSpDynamicString	s(Txt);pVoice->Speak(s,0,0);
}
void  main(int argc, char* argv[])
{if(!InitVoice())return ;Speak("123中文");ReleaseVoice();
}

使用C语言调用多媒体库来输出音乐有多种方法,这里介绍最简单的WAV波形文件播放.直接使用Win32库函数PlaySound即可播放音乐。

首先向工程中添加库函数的头文件:

#include <mmsystem.h>
#pragma comment(lib,"winmm.lib") 
//其次在需要播放的时候,添加PlaySound函数调用:
LPCTSTR path = _T("D:\\mp3\\030 Kaoma_-_Lambada.wav");
PlaySound(path, NULL, SND_FILENAME | SND_ASYNC);

即可播放音乐,当需要停止音乐时,可以用空路径再次调用PlaySound即可.

PlaySound(NULL,NULL, SND_FILENAME | SND_ASYNC);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/347384.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java的@Serial批注

JDK可能正在使用JDK 11 &#xff1a; Serial获得另一个标准&#xff08;预定义&#xff09;注释 。 JDK-8202385 [“标记与序列相关的字段和方法的注释”]的目的是添加“某种“ SerialRelated”注释&#xff0c;以促进对序列字段和方法的声明的自动检查。” 这种想法是为了更好…

Java部分A+B正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。现给定A、DA

题目描述&#xff1a; 正整数A的“DA&#xff08;为1位整数&#xff09;部分”定义为由A中所有DA组成的新整数PA。例如&#xff1a;给定A 3862767&#xff0c;DA 6&#xff0c;则A的“6部分”PA是66&#xff0c;因为A中有2个6。现给定A、DA、B、DB&#xff0c;请编写程序计算…

Windows编程之调用Matlab

一、选择matlab&#xff1a; 注意。Matlab的安装需要较长时间&#xff0c;建议本拓展在同学们自己的电脑上运行。 Matlab是大多数工科学生必修的科目&#xff0c;是一个口碑极佳的数学计算工具&#xff0c;可以支持立即运算和程序设计两种形式。Matlab较新的版本均提供32位版本…

JavaA除以B本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。

题目描述&#xff1a; 本题要求计算A/B&#xff0c;其中A是不超过1000位的正整数&#xff0c;B是1位正整数。你需要输出商数Q和余数R&#xff0c;使得A B * Q R成立。 输入描述: 输入在1行中依次给出A和B&#xff0c;中间以1空格分隔。 输出描述: 在1行中依次输出Q和R&…

Windows编程之使用外部动态链接库——纸牌

C语言功能强大的一个重要原因是因为具有丰富的库函数&#xff0c;例如字符串处理有string库&#xff0c;数学处理有math库。微软公司对程序库的支持又更进一步&#xff0c;提供了丰富的动态链接库。下面以微软操作系统内嵌的纸牌链接库为例写一个简单的小程序。 由于我们已经较…

netbeans7.4_使用NetBeans 7.4 beta提示进行更好的基于JUnit的单元测试

netbeans7.4在上一篇文章中 &#xff0c;我写了NetBeans 7.4 beta中提供的提示 &#xff0c;这些提示提高了开发人员避免Java异常处理带来的讨厌的运行时问题的能力。 在本文中&#xff0c;我将探讨如何使用NetBeans 7.4 beta提供的另外两个提示使单元测试在执行单元测试期间更…

Java锤子剪刀布大家应该都会玩“锤子剪刀布”的游戏: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。

题目描述&#xff1a; 大家应该都会玩“锤子剪刀布”的游戏&#xff1a;现给出两人的交锋记录&#xff0c;请统计双方的胜、平、负次数&#xff0c;并且给出双方分别出什么手势的胜算最大。 输入描述: 输入第1行给出正整数N&#xff08;<105&#xff09;&#xff0c;即双方…

【MATLAB函数系列】fskmod函数参数及源代码详解

关注回复【fskmod】可看 在用matlab仿真生成fsk信号时&#xff0c;发现matlab库提供fskmod函数可以直接生成fsk信号&#xff0c;但生成的信号为复信号&#xff0c;于是查看其源码&#xff0c;结果对其原理看了好久都没明白&#xff0c;在网上查询资料也少得可怜&#xff0c;唯一…

Java数字黑洞给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到 一个新的数字。一直重复这样做,我们很快会停在有“数字

题目描述&#xff1a; 给定任一个各位数字不完全相同的4位正整数&#xff0c;如果我们先把4个数字按非递增排序&#xff0c;再按非递减排序&#xff0c;然后用第1个数字减第2个数字&#xff0c;将得到 一个新的数字。一直重复这样做&#xff0c;我们很快会停在有“数字黑洞”之…

Java Spring Security示例教程中的2种设置LDAP Active Directory身份验证的方法

LDAP身份验证是全球范围内最流行的企业应用程序身份验证机制之一&#xff0c;而Active Directory &#xff08;Microsoft针对Windows的LDAP实现&#xff09;是另一种广泛使用的LDAP服务器。 在许多项目中&#xff0c;我们需要通过登录屏幕中提供的凭据使用LDAP对活动目录进行身…

C语言文件读写操作之换行符处理

getc&#xff0c;fgetc&#xff1a; -1代表结束符&#xff0c;不但能接收键盘输入的内容&#xff0c;也能从文件中读取一个字符&#xff1b; getchar() 等价于 getc(stdin); putc,fputc: putchar© 等价于 putc(c,stdout); 文件操作 t模式 与 b模式&#xff1a; windo…

Java月饼月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需 求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一

题目描述&#xff1a; 月饼是中国人在中秋佳节时吃的一种传统食品&#xff0c;不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量&#xff0c;请你计算可以获得的最大收益是多少。 注意&#xff1a;销售时允许取出一部分库存。样例给出…

【各种信噪比联系与区别详解】实信号、复信号Es、N0、符号信噪比EsN0、带内信噪比、比特信噪比EbN0、SNR的含义及关系详解

引言 关于EsN0、EbN0与SNR三者关系的描述,在MATLAB帮助文档中搜索词条“AWGN Channel”有比较详细的描述,但有些细节没有讲清楚。 简单翻译解释一下,就是 SNR表示每个采样点的信号噪声比。EbN0表示每个比特能量与噪声功率谱密度的比值。EsN0表示每个符号能量与噪声功率谱密…

非科班Java尝试全国高校计算机能力挑战赛第三届计挑赛

写在前面&#xff1a;①大佬勿在意&#xff0c;小打小闹&#xff01;②若不决参加与否&#xff0c;希望下文可以给你帮助&#xff08;仅限程序设计赛项&#xff09;。 文章目录一、个人真实情况二、比赛最细简介三、最全参赛准备四、比赛时候遇到不会做怎么办&#xff1f;一、个…

加密数据的检索_透明地持久保存并从数据库中检索加密的数据

加密数据的检索自从我在这里发表上一个帖子以来已经有两个多月了&#xff0c;但是今年六月和七月非常忙碌而密集。 首先&#xff0c; Confitura的组织&#xff08;欧洲最大的Java开发人员免费会议&#xff09;参加了我所有的免费晚会&#xff0c;然后在相当紧张的住院期间&…

微信小程序云开发日记类日记记录分享动态

微信公众号&#xff1a;创享日记&#xff08;微信号csds992022&#xff09; 发送关键词&#xff1a;日记类小程序 免费获取源码 1 概述 1.1 关于本手册 为了使您对研岸日记记录社交软件的使用有清晰详尽的了解&#xff0c;特此编写《用户手册》&#xff0c;为了保障您的利益&a…

使用Arquillian(远程)测试OpenLiberty

听到许多好评后&#xff0c;我想我会尝试一下Open Liberty 。 在这篇文章中&#xff0c;我将讨论以下内容&#xff1a; 开放自由的设置 设置JDBC连接 设置Arquillian 测试REST端点 安装开放自由 在撰写本文时&#xff0c;我正在使用Open Liberty 18.0.0.1&#xff0c;并且…

Windows编程初步(三)【说明:有敏感字眼已全删,不知道为啥还审核不通过】

第三节 设计输出及利用在线帮助 在Windows中&#xff0c;消息ON_PAINT是专门用来处理输出的。基本所有的输出代码应放在这里。 。其输出方式不再限于从上往下&#xff0c;而是全屏可控&#xff0c;因此每个输出都需要告知系统输出位置。典型的文字输出代码是TextOut函数。 将…

第十二届蓝桥杯省赛A组砝码称重Java解题思路及代码

【问题描述】 你有一架天平和 N个砝码&#xff0c;这N个砝码重量依次是W1, W2, …, Wn。 请你计算一共可以称出多少种不同的重量&#xff1f;注意砝码可以放在天平两边。 【输入格式】 输入的第一行包含一个整数N。 第二行包含N个整数: W1, W2, W3, … Wn。 【输出格式】 输出…

【定时同步系列1】定时同步之MARTIN OERDER算法原理与公式推导

关注公号【逆向通信猿】,口令:OM算法 信号模型 接收到的信号(PAM)或等效的低通信号(QAM,PSK)可以写为 r ( t ) = ∑ n = − ∞ ∞ a n g T (