zoukankan      html  css  js  c++  java
  • MFC中 使用多线程实现语音播放功能

    在这次项目中,需要实现语音播放功能。但是发现在播放语音时,无法进行其他操作。然后想到了多线程。

    可是从没有用过所谓的多线程,故在此记下自己第一次学习使用的多线程。

    首先,创建一个线程:

    void CLXTDlg::OnBnClickedButtonVoice()
    {
        hThread = CreateThread(
                              NULL,                                  // SD
                              0,                                     // initial stack size
                              (LPTHREAD_START_ROUTINE)ThreadProc,    // thread function
                              NULL,                                     // thread argument
                              0,                                         // creation option
                              &threadID                               // thread identifier
                            );
    }

    然后,写下下面这样的全局函数,就是那个线程要执行的操作:

    void ThreadProc()
    {
        ISpVoice * pVoice = NULL;
        ::CoInitialize(NULL);
        //获取ISpVoice接口:
        HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice);
        if( SUCCEEDED( hr ) )
        {
            CString str;    
            CWnd* h_d = AfxGetApp()->GetMainWnd(); //获取主窗口的句柄
            h_d->GetDlgItem(IDC_APOETRY_EDIT)->GetWindowText(str);  //IDC_APOETRY_EDIT为编辑框的ID
            pVoice->SetRate(-3);//语速
            hr = pVoice->Speak(str,0,NULL);
            pVoice->Release();
            pVoice = NULL;
        }

       ::CoUninitialize();
    }

    要实现上面的语音播放功能还需在文件最上面添加:

    #include <sapi.h>


    #pragma comment(lib,"ole32.lib") //CoInitialize CoCreateInstance需要调用ole32.dll
    #pragma comment(lib,"sapi.lib") //sapi.lib在SDK的lib目录,必需正确配置

  • 相关阅读:
    『题解』POJ1753 Flip Game
    『数论』乘法逆元
    『数据结构』RMQ问题
    UVA 253 Cube painting 【数学】
    POJ 1852 Ants 【水+Trick+贪心】
    POJ 2955 Brackets 【区间DP】
    LOJ 1422 Halloween Costumes【区间DP】
    HDU 4193 Non-negative Partial Sums 【单调队列】
    CodeForces-545C Woodcutters 【贪心+机智】
    CodeForces 19D A and B and Interesting Substrings 【前缀和】
  • 原文地址:https://www.cnblogs.com/lxt287994374/p/3132084.html
Copyright © 2011-2022 走看看