今天开发用到语音播报功能,在网上找到资料实现了此功能,写博客记录一下。
本人用的开发环境:IDEA 2019
准备工作下载对应的依赖包:jacob.jar
下载链接: https://pan.baidu.com/s/1qXPgCzy 密码 xigv
解压下载的jar包,复制 jacob.jar 到项目的 lib 目录下,右键 add as libraries 添加为依赖
将 jacob-1.17-M2-x86.dll(32位系统)/ jacob-1.17-M2-x64.dll(64位系统)添加到 JDK 的 bin 目录
lib目录查看:file —> project structure —> sdks —>点击自己选择的sdk —> 点击JDK home path 即可查看JDK的 lib 目录
32位系统:将 jacob-1.17-M2-x86.dll 复制到 JDK 的 bin 目录和 Windows 的 system32 目录
64位系统:将 jacob-1.17-M2-x64.dll 复制到 JDK 的 bin 目录和 Windows 的 system32 目录
创建一个播报语音工具类,播报时调用方法即可
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
public class staticTools {
/**【语音播报方法】**/
public static boolean speakingText(String readText){
boolean isFinish = true;
ActiveXComponent sap = new ActiveXComponent("Sapi.SpVoice");
try {
sap.setProperty("Volume",new Variant(100)); // 音量 0-100
sap.setProperty("Rate",new Variant(-3)); // 语音朗读速度 -10 到 +10
Dispatch sapo = sap.getObject(); // 获取执行对象
Dispatch.call(sapo,"Speak",new Variant(readText)); // 执行朗读
sapo.safeRelease(); // 关闭执行对象
}catch (Exception e){
isFinish = false;
e.printStackTrace();
}finally {
sap.safeRelease(); // 关闭执行对象
}
return isFinish;
}
}
参考链接:使用java实现语音播报