原文连接:http://blog.sina.com.cn/s/blog_6cf3e9940100pqq5.html
/// <summary>
/// 播放声音文件
/// </summary>
/// <param name="FileName">文件全名</param>
public void PlaySound(string FileName)
{//要加载COM组件:Microsoft speech object Library
if (!System.IO.File.Exists(FileName))
{
return;
}
SpeechLib.SpVoiceClass pp = new SpeechLib.SpVoiceClass();
SpeechLib.SpFileStreamClass spFs = new SpeechLib.SpFileStreamClass();
spFs.Open(FileName, SpeechLib.SpeechStreamFileMode.SSFMOpenForRead, true);
SpeechLib.ISpeechBaseStream Istream = spFs as SpeechLib.ISpeechBaseStream;
pp.SpeakStream(Istream, SpeechLib.SpeechVoiceSpeakFlags.SVSFIsFilename);
spFs.Close();
}
以上文章来源:百度空间#记住的忘记的#http://hi.baidu.com/jackeyrain/blog/item/12251e3fa8acb9c47d1e7188.html
下面来细分下SpVoice类,属性,方法,事件
属性:
'AlertBoundary' 分隔类型,当属性没有同,发生的事情便没有同
'AllowAudioOutputFormatChangesOnNextSet 容许用户能否能调整音频格局
'AudioOutputStream 通功当属性取得由对于象SpFileStream翻开的白件数据淌,然后通功speak方式朗诵进去
'EventInterests 取AlertBoundary相似,用来产惹事件的类型
'Priority 优先权
'Rate 朗读快度
'Voice 声响类型
'Volume 声响大小
方法:
GetVoices 到得声响类型
'Speak 开端朗诵
'Pause 暂停
'Resume 自暂停处开端朗读
'Skip 跳功若做双词或者句子
'SpeakStream 朗读白件数据淌
'WaitUntilDone 延迟必定时光,双位为毫秒
事件:
'Word 每读完一个双词即发生一次当事情
'VoiceChange 声音转变便产生
'Phoneme 每个音位产生
'EndStream 朗诵完毕后发生
speech.Rate = 5;
speech.Volume = 100;
speech.Voice = speech.GetVoices(string.Empty, string.Empty).Item(3); //取得系统声音类型
private void SpeechSpeak(string SpeakString)
{
speech.Speak(SpeakString, SpeechVoiceSpeakFlags.SVSFlagsAsync);
}
SpVoiceClass详解
属性 |
描述 |
AlertBoundary |
取得或设置停顿分界线。 |
AllowAudioOutputFormatChangesOnNextSet |
设置是否允许声音自动调整到合适状态以适应其音频输出。 |
AudioOutput |
.取得或设置当前声音使用的的音频输出对象 |
AudioOutputStream |
取得或设置当前声音使用的的音频输出流对象。 |
EventInterests |
取得或设置当前声音返回的事件类型。 |
Priority |
取得或设置声音的优先级。 |
Rate |
取得或设置阅读的速度。 |
Status |
返回一个ISpeechVoiceStatus 对象用于显示当前阅读和事件的状态 |
SynchronousSpeakTimeout |
取得或设置一个时间间隔,用于标识多久未获得一个输出设备后,一个同步的Speak 和SpeakStream将终止,以毫秒计算。 |
Voice |
取得或设置发音对象。 |
Volume |
取得或设置声音的大小 。
|
方法 |
描述 |
DisplayUI |
是否在控制面板中展示详细设置。 |
GetAudioOutputs |
返回一个可用的音频输出标记。 |
GetVoices |
返回一个可用的发音对象。 |
IsUISupported |
决定是否能通过控制棉板的音频设置来控制。 |
Pause |
暂停朗读。. |
Resume |
恢复暂停,继续播放。 |
Skip |
在当前输入的文本流中向前或向后跳一定距离再播放。 |
Speak |
阅读一个字符串。 |
SpeakCompleteEvent |
得到一个朗读完毕的时间句柄 |
SpeakStream |
朗读一个文本流或一个声音文件。 |
WaitUntilDone |
阻塞进程,直到声音播放完毕或者超时。 |