1. 配置Jacob:我这里使用的jacob为jacob-1.18,jacob-1.18下载下来以后,解压缩文件,api
里面的文件为docs、jacob.jar、jacob-1.18-x64.dll、jacob-1.18-x86.dll、LICENSE.TXT、README.txt;spa
把jacob.jar复制到项目的lib目录下面,jacob-1.18-x64.dll和jacob-1.18-x86.dll是两个动态库文件,orm
它们指JDK的安装版本,若是JDK是64位的,那么须要把jacob-1.18-x64.dll复制到JDK bin目录下面,由于对象
我装的JDK是32位的,因此我把jacob-1.18-x86.dll复制到Jdk bin目录下面,路径为"JAVA_HOME"\bin。get
2. 生成的demo代码以下:io
package com.csg.demo;class
import com.jacob.activeX.ActiveXComponent;test
import com.jacob.com.Dispatch;import
import com.jacob.com.Variant;音频
public class HelloWord {
public static void main(String[] args) {
ActiveXComponent ax = null;
try {
ax = new ActiveXComponent("Sapi.SpVoice");
Dispatch spVoice = ax.getObject();
ax = new ActiveXComponent("Sapi.SpFileStream");
Dispatch spFileStream = ax.getObject();
ax = new ActiveXComponent("Sapi.SpAudioFormat");
Dispatch spAudioFormat = ax.getObject();
//设置音频流格式
Dispatch.put(spAudioFormat, "Type", new Variant(22));
//设置文件输出流格式
Dispatch.putRef(spFileStream, "Format", spAudioFormat);
//调用输出 文件流打开方法,建立一个.wav文件
Dispatch.call(spFileStream, "Open", new Variant("F:\\test.wav"), new Variant(3), new Variant(true));
//设置声音对象的音频输出流为输出文件对象
Dispatch.putRef(spVoice, "AudioOutputStream", spFileStream);
//设置音量 0到100
Dispatch.put(spVoice, "Volume", new Variant(100));
//设置朗读速度
Dispatch.put(spVoice, "Rate", new Variant(-2));
//开始朗读
Dispatch.call(spVoice, "Speak", new Variant("张三,李四"));
//关闭输出文件
Dispatch.call(spFileStream, "Close");
Dispatch.putRef(spVoice, "AudioOutputStream", null);
spAudioFormat.safeRelease();
spFileStream.safeRelease();
spVoice.safeRelease();
ax.safeRelease();
} catch (Exception e) {
e.printStackTrace();
}
}
}