本次任务需求
在一次任务需求中,要求是需要通过jacob调用播报功能。
看了网上各种各样的解法,终于把他们都整合了起来。
在win7系统中,由于各种版本参差不齐,有些功能会被直接阉割掉。导致使用播报功能的时候会报各种各样的错误。题主在调试的过程中就遇到了以下各种问题。
相关实现代码
// content就是要播放的内容
public static void broadcast(String content) {
ActiveXComponent ac = new ActiveXComponent("Sapi.SpVoice");
Dispatch dispatch = ac.getObject();
try {
ac.setProperty("volume", new Variant(100));
ac.setProperty("Rate", new Variant(-3));
Dispatch.call(dispatch, "Speak", content);
} catch (Exception var7) {
var7.printStackTrace();
} finally {
dispatch.safeRelease();
ac.safeRelease();
}
}
本次需求中遇到的问题
1.提示缺少dll文件
我这里用的文件是jacob-1.17-M2
我提供一下下载链接,包含32位和64位两种,在你使用播报的系统中,如果是使用的32位系统的,把**-x86**的32位文件放入你的jdk的bin目录下。如果是使用的64位系统的,同理吧-x64的64位文件放到bin目录下,保证系统能够进行正常的调用。
链接: jacob-1.17-M2
提取码:yaiy
2.提示报错
比如【Can’t get object clsid from progid】等之类的问题。
这种情况,一般是在解决完成缺少文件缺失后遇到的问题,大概率是由于系统自身的原因缺少部分功能导致的报错。可以使用题主提供的修复工具进行软件修复。
链接: Win7系统微软TTS语音修复
提取码:aq39