WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 29.11.2001, 21:06   #1
Atomschwammerl
Abonnent
 
Registriert seit: 04.09.2001
Alter: 39
Beiträge: 4.355


Atomschwammerl eine Nachricht über ICQ schicken
Standard sound in c++

Wie kann ich sounddatein in c++ aufrufen?
ich will eine passwortabfrage programmieren und wennst falsch eingibst soll der sound von HL "access denied" kommen
kann mir wer helfen?
____________________________________
\'I think I spider\'

Atomschwammerl ist offline   Mit Zitat antworten
Alt 07.12.2001, 16:04   #2
Flink
Hero
 
Registriert seit: 29.08.2001
Alter: 57
Beiträge: 904


Flink eine Nachricht über ICQ schicken Flink eine Nachricht über Skype™ schicken
Standard mit

Media Control Interface (MCI):
MCIERROR mciSendCommand( MCIDEVICEID IDDevice, UINT uMsg, DWORD fdwCommand, DWORD dwParam) und mciSendString:
MCI_OPEN Öffnet das Gerät
MCI_CLOSE Schließt das Gerät
MCI_PLAY Startet die Wiedergabe
MCI_STOP Beendet die Wiedergabe
MCI_SEEK Sucht eine bestimmte Position innerhalb der Datei
MCI_RECORD Beginnt mit der Aufnahme des Wellenformklangs
MCI_SAVE Speichert den aufgenommenen Klang auf dem Datenträger

oder
Microsoft Win32 application programming interface (API):

BOOL PlaySound( LPCSTR pszSound, HMODULE hmod,DWORD fdwSound
):
SND_SYNC Spielt den Klang synchron ab
SND_ASYNC Spielt den Klang asynchron ab
SND_NODEFAULT Blockiert die Verwendung von Standardklängen
SND_MEMORY Der erste Parameter verweist auf eine Speicherdatei
SND_LOOP Wiederholt das Abspielen des Klanges bis zum nächsten Aufruf von PlaySound
SND_NOSTOP Verhindert den Abbruch der Wiedergabe eines Klanges
____________________________________
Bibel
Flink ist offline   Mit Zitat antworten
Alt 07.12.2001, 20:09   #3
Atomschwammerl
Abonnent
 
Registriert seit: 04.09.2001
Alter: 39
Beiträge: 4.355


Atomschwammerl eine Nachricht über ICQ schicken
Standard

wie sieht das dann im programm text aus?
____________________________________
\'I think I spider\'

Atomschwammerl ist offline   Mit Zitat antworten
Alt 07.12.2001, 23:46   #4
kikakater
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.631


Standard

C bzw. C++ Programm, Beispiel wie man ein MCI Gerät bzw. in diesem Fall eine Wave Datei öffnet, abspielt, schliesst, es wurde hier keine Fehlerabfrage programmiert, außerdem muß dem Linker die Importlibrary als Datei winmm.lib angegeben werden, sonst findet das Betriebssystem die Funktion mciSendCommand nicht.

c++ datei ... z.b. main.cpp bzw. fensterfunktionsdatei.cpp ... window_proc ... open_device.cpp

--- Anfang der Einfügungen in open_device.cpp

... gleich nach #include <windows.h> folgende Zeilen einfügen:

--- Anfang der einzufügenden Zeilen
Code:
#include <mmsystem.h>

 MCI_OPEN_PARMS mciOpenParameters; // respektive in einer weiteren Includedatei
--- Ende der einzufügenden Zeilen


... Open Device Aufruf z.B. bei case WM_CREATE: der Fensterfunktion WndProc einfügen:

also:

case WM_CREATE:

--- Anfang der einzufügenden Zeilen

Code:
 mciOpenParameters.lpstrDeviceType= (LPCSTR)MCI_DEVTYPE_WAVEFORM_AUDIO;
 mciOpenParameters.lpstrElementName= "C:\\WINDOWS\\CHORD.WAV";

 ulrc = // ulrc ... ULONG ReturnCode
  mciSendCommand(0,
  MCI_OPEN,
  MCI_WAIT | MCI_OPEN_ELEMENT | MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID,
  (ULONG)&mciOpenParameters);
--- Ende der einzufügenden Zeilen

und:

case WM_DESTROY:

--- Anfang der einzufügenden Zeilen

Code:
 ulrc = // ulrc ... ULONG ReturnCode
  mciSendCommand(mciOpenParameters.wDeviceID,
  MCI_CLOSE,
  MCI_WAIT,
  (ULONG)&mciOpenParameters);
--- Ende der einzufügenden Zeilen

--- Ende der Einfügungen in open_device.cpp

************************************************** ******************

--- Anfang der Einfügungen in play_device.cpp

--- Anfang der einzufügenden Zeilen

Code:
#include <mmsystem.h>

 extern MCI_OPEN_PARMS mciOpenParameters; // wurde in open_device.cpp bereits definiert, deswegen hier der Zusatz extern
 MCI_PLAY_PARMS mciPlayParameters; // hier global, sonst z.B. in einer Funktion definieren
--- Ende der einzufügenden Zeilen


--- Anfang der einzufügenden Zeilen

Code:
case WM_USER_PLAY_WAVE: // WM_USER_PLAY_WAVE muß der Programmierer letztlich festlegen über #define WM_USER_PLAY_WAVE (WM_USER + 1) z.B.

 mciSendCommand(mciOpenParameters.wDeviceID, MCI_PLAY, MCI_WAIT, (ULONG)&mciPlayParameters);
--- Ende der einzufügenden Zeilen

--- Ende der Einfügungen in play_device.cpp

mfg Kikakater
kikakater ist offline   Mit Zitat antworten
Alt 07.12.2001, 23:56   #5
Atomschwammerl
Abonnent
 
Registriert seit: 04.09.2001
Alter: 39
Beiträge: 4.355


Atomschwammerl eine Nachricht über ICQ schicken
Standard

thx
kikater
____________________________________
\'I think I spider\'

Atomschwammerl ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:03 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag