• C++ Builder XE 用sndPlaySound写的简单的语音播报算法


    void __fastcall TForm2::N6Click(TObject *Sender)
    {
    //语音报时
    // char   *wav_handle   ;
    //HRSRC  h =FindResource(HInstance, "Resource_1", "RCData");
    //HGLOBAL  h1=LoadResource(HInstance,h);
    //wav_handle = (char   *)LockResource(h1);
    //sndPlaySound(wav_handle,   SND_MEMORY   |   SND_SYNC);
    AnsiString SoftStr= ExtractFilePath(Application->ExeName);
    AnsiString Wstr=SoftStr +"res\\VoiceTime\\TIMENOW.wav";
    //sndPlaySound(wav_handle,   SND_MEMORY   |   SND_SYNC);
    sndPlaySound(Wstr.c_str() ,SND_ASYNC);
    Sleep(2000);   //延时1秒
    //
    TDateTime dt = Now();
    unsigned short hour,min, sec, msec;
    //dt.DecodeTime(

    dt.DecodeTime(&hour, &min,&sec,&msec);
    if(hour>=0 && hour <=5)
    { //凌晨
     Wstr= SoftStr +"res\\VoiceTime\\AM0.wav";
     sndPlaySound(Wstr.c_str() ,SND_ASYNC);
     Sleep(800);   //延时1秒
     //点
     Wstr= SoftStr +"res\\VoiceTime\\T"+AnsiString().sprintf("%02d",hour) +".wav";
     sndPlaySound(Wstr.c_str() ,SND_ASYNC);
     Sleep(800);   //延时1秒
    }
    else if(hour >5 && hour<=12)
    { //上午
     Wstr= SoftStr +"res\\VoiceTime\\AM1.wav";
     sndPlaySound(Wstr.c_str() ,SND_ASYNC);
     Sleep(800);   //延时1秒
     //点
     Wstr= SoftStr +"res\\VoiceTime\\T"+AnsiString().sprintf("%02d",hour) +".wav";
     sndPlaySound(Wstr.c_str() ,SND_ASYNC);
     Sleep(800);   //延时1秒
    }
    else if(hour>12)
    {   //下午
        Wstr= SoftStr +"res\\VoiceTime\\PM.wav";
        sndPlaySound(Wstr.c_str() ,SND_ASYNC);
        Sleep(800);   //延时1秒
        //点
        Wstr= SoftStr +"res\\VoiceTime\\T"+AnsiString().sprintf("%02d",hour-12) +".wav";
        sndPlaySound(Wstr.c_str() ,SND_ASYNC);
        Sleep(800);   //延时1秒
    }
    else
    { //晚上
        Wstr= SoftStr +"res\\VoiceTime\\EM.wav";
        sndPlaySound(Wstr.c_str() ,SND_ASYNC);
        Sleep(800);   //延时1秒
       //点
        Wstr= SoftStr +"res\\VoiceTime\\T"+AnsiString().sprintf("%02d",hour-12) +".wav";
        sndPlaySound(Wstr.c_str() ,SND_ASYNC);
        Sleep(800);   //延时1秒
    }
    //点
        Wstr= SoftStr +"res\\VoiceTime\\POINT.wav";
        sndPlaySound(Wstr.c_str() ,SND_ASYNC);
        Sleep(800);   //延时1秒
       //分
       if(min/10>0)
       {
        Wstr= SoftStr +"res\\VoiceTime\\T"+AnsiString().sprintf("%02d",min/10*10) +".wav";
        sndPlaySound(Wstr.c_str() ,SND_ASYNC);
        Sleep(800);   //延时1秒
        Wstr= SoftStr +"res\\VoiceTime\\T"+AnsiString().sprintf("%02d",min%10) +".wav";
        sndPlaySound(Wstr.c_str() ,SND_ASYNC);
        Sleep(800);   //延时1秒
       }
       else
       {
        Wstr= SoftStr +"res\\VoiceTime\\T"+AnsiString().sprintf("%02d",min) +".wav";
        sndPlaySound(Wstr.c_str() ,SND_ASYNC);
        Sleep(800);   //延时1秒
       }
        Wstr= SoftStr +"res\\VoiceTime\\Min.wav";
        sndPlaySound(Wstr.c_str() ,SND_ASYNC);
        Sleep(800);   //延时1秒
       //秒
    //    Wstr= SoftStr +"res\\VoiceTime\\T"+AnsiString().sprintf("%02d",sec) +".wav";
    //    sndPlaySound(Wstr.c_str() ,SND_ASYNC);
    //    Sleep(1000);   //延时1秒
    //    Wstr= SoftStr +"res\\VoiceTime\\Min.wav";
    //    sndPlaySound(Wstr.c_str() ,SND_ASYNC);
    //    Sleep(1000);   //延时1秒
    }

  • 相关阅读:
    0基础学习VR全景平台篇第120篇:极坐标处理接缝 - PS教程
    论文降重:我从论文重复率75%降到4.5%,顺利毕业
    java计算机毕业设计家庭安防系统源码+mysql数据库+系统+lw文档+部署
    Kyuubi
    独立站投放谷歌广告是应该找代理商
    苍穹外卖学习笔记(8.用户端历史订单模块,商家端订单管理模块)
    软件测试/测试开发丨Linux进阶命令
    创建UI账号密码登录界面
    JAVA毕设项目商店管理系统演示录像(java+VUE+Mybatis+Maven+Mysql)
    [附源码]JAVA毕业设计计算机专业在线学习评估软件-演示录像-(系统+LW)
  • 原文地址:https://blog.csdn.net/lzksword/article/details/127952670