Audio Wiedergabe mit c++ und Eingabe mit nur einem Tastendruck
-
M@IK schrieb:
2. muss ich wissen wie ich Audiodateinen (Format egal) die sich in dem selben Ordner befinden, mit dem Programm abspielen kann OHNE dabei z.B. den Mediaplayer zu benutzen.
Womit möchtest du sie denn ansonsten abspielen? Willst du selbst einen Player schreiben oder ein externes Programm nutzen?
-
WinAPI: PlaySound - spielt Wave-Dateien ab.
-
Ich will auch keinen eigenen Player schreiben. Bei anderen Programmen gehts doch auch ohne oder wird da z.B. Direct Sound genutzt?
-
.............. schrieb:
WinAPI: PlaySound - spielt Wave-Dateien ab.
is das ein c++ befehl oder ein Programm?
derDA schrieb:
Da hab ich einen guten Link für dich !
Ein Buch mit Tausenden von Seiten und Übungsaufgaben ich meine da auch mal letzdens irgendwas vom Windows Media Player gesehen zu haben.
Musst halt mal gucken aber das Buch ist echt gut.
Musst halt den Acrobat Reader bei dir installiert haben dann kannste das auch runterladen.
Sorry, aber ist das wirklich legal? Oder ist das ein Openbook?
-
PlaySound ist eine Funktion, die nur unter Windows funktioniert. Du musst windows.h einbinden um sie nutzen.
Dokumentation: http://msdn2.microsoft.com/en-us/library/ms712879(VS.85).aspx
-
Vielen dank, dann hab ich alles was ich brauche
danke an alle!
-
Irgendwie versteh ich den Befehln nicht ganz, wie gesagt ich hab gerade erst mit dem Programmieren angefangen und da ich nicht sehr gut Englisch kann (bin in der 7. Klasse) weis ich nicht genau wie ich Diesen benutzen soll. Könntest du mir vllt eine Beispiel geben, wenn ich die Audiodatei "Sound.wav" spielen will die sich in dem Ordner "Test" Befindet wo sich auch das Programm befinden soll?
Wäre sehr nett und sorry für die Umstände,
-
In dem Link hat es doch ein Beispiel!
http://msdn2.microsoft.com/en-us/library/ms712879.aspx
Was aber dein Problem sein könnte ist die Pfadangabe. Die Datei muss sich dort befinden, wo dein Projekt ist. Und wenn du eine .exe hast, dann muss sie sich im gleichen Ordner befinden.
Also bei dir wird es dann einen Ordener Test im Projektordner geben und du musst dann die Datei mittels "Test/Sound.wav" holen.PlaySound(TEXT("Test/Sound.wav"), NULL, SND_FILENAME);
-
DAs Beispiel hab ich gesehen und auch versucht zu benutzen nur leider funktioniert das nicht. ICh schick dir mal den Code:
#include <iostream>
#include <conio.h>
#include <windows.h>
using namespace std;
int main(void) {
char hi;
while ( hi ) {
hi=getch();
if ( hi='e' ) {
PlaySound(TEXT("Test/situation.wav"), NULL, SND_FILENAME);
}
else {
cout << "Falsche Eingabe";
break;
}
}
int ha;
cin >> ha;
return 0;
}Ich habe auch schon das .wav weggelassen und vieles anderes versucht, aber es funktopniert nicht!
Ich habe den Compiler Dev-C++ und die Fehlerausgabe ist:[Linker error] undefined reference to `PlaySoundA@12'
ld returned 1 exit status
-
Hast du auch, wie im Link beschrieben, die Winmm.lib mit eingebunden?
-
Nein habe ich nicht!
Nur leider weiß ich auch nicht genau wie man das macht und etwas was mit helfen könnte hab ich auch nicht gefunden könnte mir jemand sagen wie das geht?
-
Kommt auf deine IDE/Compiler an.
-
Mein compiler ist wie schon gesagt Dev-C++
-
Veraltet. Benutze einen aktuelleren Compiler. VC++ ist gut.
Und dort einfach: Projekt->Projekteigenschaften->Konfigurationseigenschaften->Eingabe und dann Zusätzliche Abhängigkeiten Winmm.lib eintragen.
-
naja egal was du machst du benutzt eine api
du kannst directsound benutzen klar, winamp benutzt zb default direct sound
die anderen haben schon gepostet dass es eine winapi (?) funktion gibt zum wav abspielen - du könntest beispielsweise auch OpenAL (ergänzung zu openGL für sound) nehmenwenn man sucht findet man sicher sehr viele mehr oder weniger feature lastige und einfach/komplex zu benutzende APIs für sound, du musst dir halt das aussuchen was dir am besten passt
zb wenn es dir reicht einfach eine wav file abzuspielen weil du einen von diesen serial generators schreiben willst die immer diese alten arcade-like sounds im hintergrund rennen haben (omg -.-) nimm halt ruhig diese windows.h funktion dafür
falls du dich für directsound entscheidest könntest du für den input check auch gleich directinput nutzen
-
Er ist noch in der Konsole, darum macht DInput keinen allzu grossen Sinn. Vor allem sollte man direkt die WinAPI Funktionen für den Input nehmen. Es gibt einen Grund, warum die nicht mehr weiterentwickelt wird. MS empfiehlt selbst die nicht mehr zu benutzen.
Für den forgeschrittenen Sound ist auch fmod sehr zu empfehlen. Sehr Anfänger freundlich.
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
So ich hab das Programm nun fertig, danke für all eure Hilfe.
Ich hab mir Vc++ besorgt, das ist auch viel besser.
2 Fargen hätte ich aber noch:
Warum funktioniert das Programm nur, wenn ich erst jedes Mal die Projekt-Datei öffne und dann mit dem Compiler debugge, und nicht wenn ich die Anwendung im Ordner starte?
Wie kann ich die geschwindigkeit verbessern, in der die Sounds abgespielt werden?
das läuft alles in so einem 1/2 Sekunden takt ab!
Hier der Code:
#include <iostream>
#include <conio.h>
#include <windows.h>
using namespace std;
int main(void) {
char var='a';
while ( var ) {
var=getch();
switch ( var ) {
case 'k' :
PlaySound(TEXT("Debug/clap"), NULL, SND_FILENAME);
break;
case 'l' :
PlaySound(TEXT("Debug/laser"), NULL, SND_FILENAME);
break;
case 's' :
PlaySound(TEXT("Debug/scratch"), NULL, SND_FILENAME);
break;
case 'b' :
PlaySound(TEXT("Debug/bd"), NULL, SND_FILENAME);
break;
case 'h' :
PlaySound(TEXT("Debug/hh"), NULL, SND_FILENAME);
break;
case 'j' :
PlaySound(TEXT("Debug/snare"), NULL, SND_FILENAME);
break;
}
}
return 0;
}
-