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(); } //---------------------------------------------------------------------------