zoukankan      html  css  js  c++  java
  • 用插件弄个语音阅读文本的小程序(托管C++)

    突然想了解语音方面的东西,就在网上看了下,开始没有找到,后来看见了几个都是MFC和C#的。不过不是我想要的。我想要的效果还在搜索中。无聊就弄了个和别人差不多的翻版。用托管C++做的。加入插件。建立项目。在窗体上添加一个textbox,一个组合框,几个标签和2个控制音量的控件。代码如下:

    SpVoice ^voic;
      bool pasue;
     private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
         SpVoice ^voic=gcnew SpVoice();
     
        
                    voic->Voice = voic->GetVoices(String::Empty,String::Empty)->Item(comboBox1->SelectedIndex);              
                  
         voic->Rate =rate;              
         voic->Volume =vol;              
         voic->Speak(textBox1->Text, SpeechVoiceSpeakFlags::SVSFDefault);

        }
    private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
       
                 SpVoice ^voic=gcnew SpVoice();
     
         for each (ISpeechObjectToken ^Token in voic->GetVoices(String::Empty, String::Empty))
                {     
           
        this->comboBox1->Items->Add(Token->GetDescription(49));
                }
         this->comboBox1->SelectedIndex=0;
       
        pasue=false;
       }
    private: System::Void trackBar2_Scroll(System::Object^  sender, System::EventArgs^  e) {
                   rate=   this->trackBar2->Value ;
       }
    private: System::Void trackBar1_Scroll(System::Object^  sender, System::EventArgs^  e) {
          vol=this->trackBar1->Value;
       }
    private: System::Void comboBox1_SelectedIndexChanged(System::Object^  sender, System::EventArgs^  e) {
                 
       }
    private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) {
                  
        this->voic=gcnew SpVoice();
       if(pasue)
        {
       this->voic->Resume();
           pasue=false;
        this->button2->Text="暂停";
      }
       else
       {
       this->voic->Pause();
         pasue=true;
         this->button2->Text ="继续";
        }
      }
       private: System::Void button3_Click(System::Object^  sender, System::EventArgs^  e) {
           this->Close();
          }

     不过这个暂停有点问题样。在托管中不允许直接创建实例,但是要用于整个窗体的实例变量又必须在托管类中直接建立。我现在还没有找到好的解决办法。如果有人知道请留言告诉我哈。

  • 相关阅读:
    JS判断输入是否为整数和数字的正则表达式
    c#字符串转换为日期,支持任意字符串
    清除sql server 登录的时候记住的账户
    关于sql 的convert 格式设置
    ArcObjects SDK(AE)10.1在vs2012安装的方法
    解决ArcGIS Engine AE 读取shapefile中文属性乱码的一条偏方
    skyline TerraBuilder 制作MPT方法与技巧(2)
    skyline TerraBuilder 制作MPT方法与技巧(1)
    Makefile之文件搜索
    Makefile学习之通配符和自动变量($@、$<、$^)
  • 原文地址:https://www.cnblogs.com/jinyuttt/p/1736609.html
Copyright © 2011-2022 走看看