技术宅的结界

 找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 3728|回复: 5
收起左侧

【COM】一个超简单的COM实例,演示了怎么使用SpVoice

[复制链接]

1096

主题

2694

帖子

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
240
威望
679 点
宅币
23055 个
贡献
46153 次
宅之契约
0 份
在线时间
2190 小时
注册时间
2014-1-26
发表于 2015-6-14 01:47:41 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

x
代码只有这么一小点。你不需要引用额外的库。这个直接就可以通过编译。
[C++] 纯文本查看 复制代码
#include<iostream>

#include<Windows.h>
#include<sapi.h>

using namespace std;

int main(int argc,char**argv)
{
	HRESULT hr;//COM的错误代码

	//初始化COM
	if(FAILED(hr=CoInitialize(NULL)))
	{
		cout<<"初始化COM失败。"<<endl;
		return 1;
	}

	ISpVoice*Voice;
	if(FAILED(hr=CoCreateInstance(CLSID_SpVoice,NULL,CLSCTX_INPROC_SERVER,IID_ISpVoice,(LPVOID*)&Voice)))
	{
		cout<<"无法创建ISpVoice实例。"<<endl;
		return 1;
	}

	Voice->Speak(TEXT("Hello World. 然而并没有什么卵用。"),SVSFDefault,NULL);
	Voice->Release();
	return 0;
}
BIN: speak.exe (15.5 KB, 下载次数: 17)
SRC: Entry.cpp (556 Bytes, 下载次数: 6)
回复

使用道具 举报

52

主题

278

帖子

8938

积分

用户组: 管理员

UID
77
精华
16
威望
237 点
宅币
7860 个
贡献
246 次
宅之契约
0 份
在线时间
226 小时
注册时间
2014-2-22
发表于 2015-6-23 08:51:47 | 显示全部楼层
就喜欢这种短小精悍的DEMO代码。

7

主题

155

帖子

9104

积分

用户组: 真·技术宅

UID
4293
精华
5
威望
424 点
宅币
7247 个
贡献
829 次
宅之契约
0 份
在线时间
263 小时
注册时间
2018-9-19
发表于 2022-2-16 10:03:45 | 显示全部楼层
话说SAPI可不可以把语音输出到内存Buffer上?

1096

主题

2694

帖子

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
240
威望
679 点
宅币
23055 个
贡献
46153 次
宅之契约
0 份
在线时间
2190 小时
注册时间
2014-1-26
 楼主| 发表于 2022-2-16 19:28:33 | 显示全部楼层
系统消息 发表于 2022-2-16 10:03
话说SAPI可不可以把语音输出到内存Buffer上?

没仔细研究,可能不太行

点评

找到了,里面有个SpMemoryStream的类,绑定到SpVoice的AudioOutputStream上就可以了。  发表于 2022-2-17 10:18

0

主题

48

帖子

61

积分

用户组: 小·技术宅

UID
8099
精华
0
威望
2 点
宅币
9 个
贡献
0 次
宅之契约
0 份
在线时间
8 小时
注册时间
2022-10-22
发表于 2022-11-23 23:15:49 | 显示全部楼层
最短小的com编程了,哈哈哈

本版积分规则

QQ|申请友链||Archiver|手机版|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2022-12-9 03:28 , Processed in 0.064361 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表