www.pudn.com > c++builerTTS_Test.rar > spVoice.cpp


//--------------------------------------------------------------------------- 
 
#include  
#pragma hdrstop 
 
#include "spVoice.h" 
//--------------------------------------------------------------------------- 
#pragma package(smart_init) 
#pragma link "SpeechLib_OCX" 
#pragma resource "*.dfm" 
TForm1 *Form1; 
//--------------------------------------------------------------------------- 
__fastcall TForm1::TForm1(TComponent* Owner) 
        : TForm(Owner) 
{ 
} 
//--------------------------------------------------------------------------- 
 
void __fastcall TForm1::Button1Click(TObject *Sender) 
{ 
SpVoice1->set_Rate(TrackBar1->Position); 
SpVoice1->set_Priority(0); 
SpVoice1->ConnectKind=2; 
//SpVoice1->ConnectTo(SpVoice1->Voice); 
SpVoice1->Connect(); 
 
//SpVoice1->Speak((WideString)(Memo1->Lines->Text),1); 
//占用太多的资源问题,将 flags 标志设为 1 ,使它异步装载就可以了,比同步装载 
//减小资源 20% 左右。 
 
//SpVoice1->Speak((WideString)(Memo1->Lines->Text),3);  //这句正确的写法是: 
//SpVoice1->Speak((WideString)(Memo1->Lines->Text),0);  // <--- 默认读当前文字 
SpVoice1->Speak((WideString)(Memo1->Lines->Text),1);    //表示可以异步执行,以便暂停 
 
//SpVoice1->Speak(FileName,4); //读指定文件: 
//SpVoice1->Speak((WideString)(Memo1->Lines->Text),1);  //动态装入: 
} 
//--------------------------------------------------------------------------- 
 
void __fastcall TForm1::TrackBar1Change(TObject *Sender) 
{ 
 Label3->Caption=TrackBar1->Position; 
} 
//--------------------------------------------------------------------------- 
void __fastcall TForm1::Button2Click(TObject *Sender) 
{ 
SpVoice1->Pause(); 
} 
//--------------------------------------------------------------------------- 
void __fastcall TForm1::Button3Click(TObject *Sender) 
{ 
SpVoice1->Resume(); 
} 
//--------------------------------------------------------------------------- 
void __fastcall TForm1::Button4Click(TObject *Sender) 
{ 
SpVoice1->Disconnect(); 
} 
//---------------------------------------------------------------------------