真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C#實(shí)現(xiàn)備忘錄功能

一、簡(jiǎn)述

目前成都創(chuàng)新互聯(lián)已為超過千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、大姚網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

      備忘錄,相信大家生活中都使用過,比如記筆記、手機(jī)備忘錄等等,這些都是記錄自己靈感時(shí)所想、定期內(nèi)想做的事情,好像跑題了,說說我的備忘錄吧,我的備忘錄功能上也就是增刪改查的操作,另加到時(shí)提醒、語音播放內(nèi)容,很簡(jiǎn)單吧,但是實(shí)用,好了,想看設(shè)計(jì)點(diǎn)吧。 

二、設(shè)計(jì)

1、數(shù)據(jù)庫(kù)設(shè)計(jì)

       數(shù)據(jù)庫(kù)用的是SQLite

       數(shù)據(jù)庫(kù)表:Sys_Kind、Memorandum

       Sys_Kind是一個(gè)通用字典表,這個(gè)對(duì)初學(xué)者有幫助,如下圖:

C#實(shí)現(xiàn)備忘錄功能

C#實(shí)現(xiàn)備忘錄功能

解析:ID不用說了,自增的標(biāo)識(shí),K_Name:字典名稱,K_Parent:父類型標(biāo)識(shí),就是說如果K_Parent為0,那么它就是一個(gè)類型,然后子字典就以它作為父類,這個(gè)字段鍵入父類ID值即可,K_Sort排序就是單個(gè)類型的排序,或者你也可以將所有數(shù)據(jù)作為排序也行,K_AddTime添加時(shí)間,K_Desc字典描述,這樣可以便于后來的人查看這個(gè)是用來干什么的,K_State字典狀態(tài),這個(gè)呢,可以靈活應(yīng)用,用來是否顯示某個(gè)字典或者其他多狀態(tài)都可以,K_Code字典代碼值,這個(gè)就很重要了,這個(gè)就用作字典的值,很多人或許會(huì)問,為什么不用自增ID呢,因?yàn)槿绻愋秃芏嗟那闆r下,這個(gè)ID值會(huì)越來越大,你定義的類型值本身沒有幾個(gè),而它的值還這么大,何必呢,旁邊這個(gè)表就是備忘錄表,我就不解釋了,自己慢慢體會(huì)。

2、程序設(shè)計(jì)(上圖)

C#實(shí)現(xiàn)備忘錄功能

C#實(shí)現(xiàn)備忘錄功能

這個(gè)呢,大家都知道哈,就是普普通通的增刪改查,沒什么大的技術(shù)含量

三、核心技術(shù)

1、自動(dòng)查詢備忘錄

這一塊呢,相信大家都知道,可以用Timer這個(gè)控件,的確可以用Timer,當(dāng)然這里,我用的不是Timer控件,而是System.Threading.Timer這個(gè)類,當(dāng)然需要了解相關(guān)的用法,大家可以百度搜索,也可以去這兒https://msdn.microsoft.com/zh-cn/library/system.threading.timer(v=vs.110).aspx看看,當(dāng)然我也貼出代碼,讓大家參考一下。

//聲明一個(gè)委托
private delegate void SetTimerLogicCallback();

//聲明一個(gè)定時(shí)器的類
private System.Threading.Timer threadTimer;

//執(zhí)行委托的方法,ShowMemorandumInfo是查詢數(shù)據(jù)庫(kù)的方法
private void ThreadMethod(object obj)
    {
      SetTimerLogicCallback timerLogic = new SetTimerLogicCallback(ShowMemorandumInfo);
      this.Invoke(timerLogic);
    }


 /// 
    /// 定時(shí)器設(shè)置,這個(gè)方法或者這段代碼可以寫在窗體加載的時(shí)候
    /// 
    private void TimerSet()
    {
       threadTimer = new System.Threading.Timer(new System.Threading.TimerCallback(ThreadMethod), null, 0, 1000);
    }

2、語音播報(bào)內(nèi)容

這塊我用了兩個(gè)方面的技術(shù),一個(gè)就是微軟自帶的System.Speech.Synthesis.SpeechSynthesizer語音識(shí)別的類,第二個(gè)就是百度提供的語音識(shí)別接口,為什么用兩個(gè)呢,如果我們用戶機(jī)上面沒網(wǎng),那么就可以使用微軟自帶的語音識(shí)別功能,如果用戶機(jī)沒裝微軟的語音識(shí)別,那么就可以使用百度的語音識(shí)別接口,如果沒網(wǎng)、機(jī)器也沒裝微軟的語音識(shí)別,那么你可以打包程序自動(dòng)裝微軟自帶語音識(shí)別的安裝包或者其他插件異或組件,當(dāng)然,這個(gè)安裝包肯定比你的程序大很多,估計(jì)現(xiàn)在除了用xp的,win7的沒有幾個(gè)沒自動(dòng)裝語音識(shí)別的吧,好了,下面就是代碼:

/// 
    /// 微軟語音識(shí)別
    /// 
    /// 提示內(nèi)容
    public static void SpeakAsync(string content)
    {
      try
      {
        if (synth != null)
          synth.Dispose();
        synth = new System.Speech.Synthesis.SpeechSynthesizer();
        synth.SpeakAsyncCancelAll();
        synth.SpeakAsync(content);
      }
      catch (Exception ex)
      {
        throw ex;
      }
    }


    /// 
    /// 百度語音合成(文檔網(wǎng)站:http://yuyin.baidu.com/docs/tts/197)
    /// 
    private void BaiduTts(string audioText)
    {
      _ttsClient = new Baidu.Aip.Speech.Tts("API_KEY", "SECRET_KEY ");
      // 可選參數(shù)
      var option = new Dictionary()
        {
          {"spd", 5}, // 語速
          {"vol", 7}, // 音量
          {"per", 4} // 發(fā)音人,4:情感度丫丫童聲
        };
      var result = _ttsClient.Synthesis(audioText, option);
      if (result.ErrorCode == 0)
      {
        string fileName = Application.StartupPath + "\\" + Guid.NewGuid().ToString() + ".mp3";
        System.IO.File.WriteAllBytes(fileName, result.Data);
        axWindowsMediaPlayer1.URL = fileName;
        axWindowsMediaPlayer1.Ctlcontrols.play();
        System.IO.File.Delete(fileName);
      }
      else
      {
        Utils.LogMessage("百度語音合成異常", result.ErrorMsg);
      }
    }


 總結(jié):這是一個(gè)簡(jiǎn)單的備忘錄程序,歡迎初學(xué)者學(xué)習(xí),大神就隨便看看就行了,歡迎大家點(diǎn)贊轉(zhuǎn)發(fā)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。


當(dāng)前標(biāo)題:C#實(shí)現(xiàn)備忘錄功能
鏈接地址:http://weahome.cn/article/jddhgj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部