#include "Speak.h"
//#pragma comment(lib,"C:\\Program Files (x86)\\Windows Kits\\8.1\\Lib\\winv6.3\\um\\x86\\sapi.lib") //导入语音头文件库
Speak::~Speak()
{
}
bool Speak::InitSpeak()
{
if (FAILED(::CoInitialize(NULL)))//FAILED
{
return false;
}
HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void**)&pVoice);
if (SUCCEEDED(hr))
{
byte VoiceValue = GetPrivateProfileInt(L"VOICE", L"VoiceValue", 0, L"./setting.ini");
if (VoiceValue == 0)
{
pVoice->SetVolume((USHORT)100);
}
else
{
pVoice->SetVolume((USHORT)VoiceValue); //设置音量,范围是 0 -100
}
pVoice->SetRate(0); //设置速度,范围是 -10 - 10
if (GetPrivateProfileInt(L"LANGUAGE", L"language", 0, L"./setting.ini") == 0)
{
int i = GetVoice();
SetLanguage(SP_CHINESE);
if (GetVoice() == 1)
pVoice->Speak(L"启动软件", 0, NULL);
}
else
{
SetLanguage(SP_ENGLISH);
if (GetVoice() == 1)
pVoice->Speak(L"system start", 0, NULL);
}
return true;
}
return false;
}
void Speak::SetLanguage(const DWORD dwLanguage)
{
switch (dwLanguage)
{
case SP_CHINESE:
SpFindBestToken(SPCAT_VOICES, L"language=804",NULL, &pSpToken);
pVoice->SetVoice(pSpToken);
break;
case SP_ENGLISH:
SpFindBestToken(SPCAT_VOICES, L"language=409",NULL, &pSpToken);
pVoice->SetVoice(pSpToken);
break;
default:break;
}
}
void Speak::Release()
{
if (pVoice)
{
pVoice->Release();
pVoice = NULL;
::CoUninitialize();
}
if (pSpToken)
{
pSpToken->Release();
pSpToken = NULL;
}
}
void Speak::SpeakVoice(LPCTSTR speakContent)
{
if (pVoice)
{
if (GetVoice() == 1)
{
pVoice->Resume();
pVoice->Speak(speakContent, SPF_DEFAULT, NULL);
}
}
}
void Speak::SetVolume(int value)
{
if (pVoice)
{
pVoice->SetVolume((USHORT)value); //设置音量,范围是 0 -100
}
}
int Speak::GetVoice()
{
return GetPrivateProfileInt(L"VOICE", L"IsVoice", 0, L"./setting.ini");
}
void Speak::PauseOrResume(bool voice)
{
if (pVoice)
{
if (voice == false)
{
pVoice->Pause();
}
else
{
pVoice->Resume();
}
}
}

热心网友纯白
- 粉丝: 83
最新资源
- 厉玉鸣《化工仪表及自动化》一检测仪表基本知识PPT课件.ppt
- 高校物联网实验室建设初探.pptx
- 基于单片机得温度控制器毕业设计说明书.doc
- 学院网络与信息安全管理办法.docx
- 智慧城市社会治理建设方案.doc
- 元宇宙科普PPT.pptx
- 网络营销策略总结.doc
- 2023年一建项目管理知识点整理可打印.doc
- 设计部全面质量管理体系cad制图规范.doc
- 系统集成项目工作流程及管理样本.doc
- 基于DS18B20STC89C52单片机LCD1602液晶显示测温系统C程序完整版.doc
- 信息网络运维项目质量目标.doc
- 网络高清车牌识别停车场管理系统.doc
- 计算机信息系统集成项目经理资质管理概论.pptx
- 工艺技术改造项目管理规定.doc
- 我国企业项目管理团队建设问题研究.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


