Sound ausgeben



  • Hallo,
    kann mir jemand ein kleines Beispiel geben:

    Bei Betätigung eines Buttons wird eine Sounddatei ausgegeben. Nach Abschluss der Soundausgabe wird eine zufällige Zeit (2-10 Sekunden) gewartet und anschließend die nächste Sounddatei ausgegeben.

    Wäre prima, wenn mir jemand helfen würde 🙂

    Liebe Grüße
    Mathias



  • Wie kommt man eigentlich auf die Idee, sich selbst fragwürdige Übungsprobleme zu überlegen, die dann jemand anders lösen soll?
    Die Leute kommen her, um mal schnell (Wissens-)Lücken zu füllen. Aber eine Lücke hat per Definition an beiden Enden etwas, an dem man ansetzen kann... 🙂



  • Hallo ,

    PseudoCode:

    #include <sphelper.h>
    
    static unsigned __stdcall ClientSay(void *ptr)
    { 
    	CString str((char *)ptr);
    	if(FAILED(::CoInitialize(NULL)))return 0;
        CComPtr<ISpVoice>              cpVoice;
        CComPtr<ISpObjectToken>        cpVoiceToken;
    	CComPtr<IEnumSpObjectTokens>   cpEnum;
    	ULONG                          ulCount(0);
    	if(FAILED(cpVoice.CoCreateInstance(CLSID_SpVoice)))return 0;
    	if(FAILED(SpEnumTokens(SPCAT_VOICES, NULL, NULL, &cpEnum)))return 0;
    	if(FAILED(cpEnum->GetCount(&ulCount)))return 0;
    	cpVoiceToken.Release();
    	if(FAILED(cpEnum->Next(1, &cpVoiceToken, NULL)))return 0; 
    	if(FAILED(cpVoice->SetVoice(cpVoiceToken)))return 0;
    	cpVoice->Speak( str.AllocSysString(), SPF_ASYNC, NULL );
    	while(cpVoice->WaitUntilDone(33) == S_FALSE);
    	::CoUninitialize();
    	g_VoiceCnt--;
    }
    
    //Auslösen:
     DWORD ret;
       _beginthreadex(0,0,ClientSay,(void*)"Hallo Welt",0,(unsigned *)&ret);
    

    Oder : http://www.c-plusplus.net/forum/139475-full


Anmelden zum Antworten