Autor Beitrag
ultraz06
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 84



BeitragVerfasst: Mo 09.02.09 19:32 
hi^^
ich habe folgendes problem ich will bei einem programm eine hintergrundmelodie laufen lassen

ausblenden Delphi-Quelltext
1:
sndPlaySound(PChar(ExtractFilePath(ParamStr(0)) + '11.wav'),SND_aSYNC);					


die soll ununterbrochen laufen.dazu will das wenn man auf die maus drückt ein geräusch kommt

sndPlaySound(PChar(ExtractFilePath(ParamStr(0)) + 'schuss.wav'),SND_aSYNC);

also ein schuss.
aber immer wenn der schuss kommt hört die melodie auf...
die melodie habe ich in form1.activate geschrieben.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 09.02.09 19:58 
Das wird so nicht gehen. Eine einfache Lösung wäre ein TMediaPlayer im Hintergrund für die Melodie und dazu sollte PlaySound gehen, eine schöne Lösung wäre die BASS DLL.
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 09.02.09 20:00 
Oder FMOD
ultraz06 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 84



BeitragVerfasst: Di 10.02.09 12:10 
also soll ich den delphi mediaplayer für die hintergrundmelodie nehmen und playsound für den schuss?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 10.02.09 13:58 
Das wäre eine Möglichkeit denke ich, ja.

Die Datenmenge wäre natürlich kleiner, wenn du MP3s und BASS z.B. oder FMOD nimmst. Und sauberer wäre die Lösung auch.
ultraz06 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 84



BeitragVerfasst: Di 10.02.09 14:44 
also soll ich die wav-datei in eine mp3 umwandeln oder was meinstdu mit mp3 und bass verstehe ich nicht was du damit meinst.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 10.02.09 15:03 
Eine MP3 kannst du z.B. mit der BASS Bibliothek abspielen, das meinte ich:
www.un4seen.com/bass.html
Und MP3s brauchen ja signifikant weniger Platz als Wav-Dateien.
ultraz06 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 84



BeitragVerfasst: Di 10.02.09 16:37 
ich habe es so gemacht
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
var Pfad:string;
procedure TForm1.Button2Click(Sender: TObject);
begin
 begin
getdir(0,Pfad);
 with mediaplayer1 do
 begin filename:=Pfad+'11.wav';
 mediaplayer1.open;
 mediaplayer1.play;
 end;
 end;
  end;
end.

aber es kommt die fehlermeldung :
'Kann keinen Gerätetyp aus der angegebenen dateierweiterung ermitteln'
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Di 10.02.09 17:32 
user profile iconultraz06 hat folgendes geschrieben Zum zitierten Posting springen:
getdir(0,Pfad);
Hast du dir schonmal angeguckt, was genau GetDir tut? :shock:
Niemals darfst du GetDir nutzen, um den Programmordner herauszufinden! Für den Programmordner empfielt sich eine von den folgenden Varianten:
ausblenden Delphi-Quelltext
1:
2:
Pfad := ExtractFilePath(ParamStr(0)); //in ParamStr(0) ist der Pfad+Dateiname deiner Exe-Datei
Pfad := ExtractFilePath(Application.ExeName); //siehe ParamStr(0) ;)

Ausserdem solltest du auf den with-Block verzichten, der ist hier nicht nötig und sorgt für Verwirrung, da z.B. nicht eindeutig ist, ob du MediaPlayer1.MediaPlayer1.Open meinst oder Form1.MediaPlayer1.Open.
Für das eigentliche Problem hab ich aber keine Lösung, vielleicht hilft ja schon, einen funktionierenden Pfad zu nutzen ... ? :nixweiss:

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
ultraz06 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 84



BeitragVerfasst: Di 10.02.09 17:42 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
var Pfad:string;
procedure TForm1.Button2Click(Sender: TObject);
begin
Pfad := ExtractFilePath(ParamStr(0))   ;
 with mediaplayer1 do
 begin filename:=Pfad+'11.wav';
 mediaplayer1.open;
 mediaplayer1.play;
 end;
 end;
end.

es kommt immernoch die fehlermeldung
'Kann keinen Gerätetyp aus der angegebenen dateierweiterung ermitteln'
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 10.02.09 17:54 
Bei mir funktioniert der Code 1:1 wie du ihn geschrieben hast. :nixweiss:

Das liegt dann an den entsprechenden Windowsfunktionen, aber wie es sein kann, dass die wav-Erweiterung nicht erkannt wird, keine Ahnung, das kann jeder Windows-PC sofort eigentlich.
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Di 10.02.09 17:56 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Das liegt dann an den entsprechenden Windowsfunktionen, aber wie es sein kann, dass die wav-Erweiterung nicht erkannt wird, keine Ahnung, das kann jeder Windows-PC sofort eigentlich.
Wäre es denkbar, dass die Datei eigentlich keine Wave Audio ist und der Mediaplayer merkt, dass Header und Endung nicht übereinstimmen? Ich kenn mich da jetzt weniger aus. :nixweiss:
Hast du es mal mit einer anderen Datei versucht?

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 10.02.09 17:57 
Dann sollte eigentlich die MCI-Meldung kommen, dass die Datei beschädigt ist. Die angegebene Fehlermeldung tritt schon vorher auf, wenn der entsprechende Handler für die Dateiendung gesucht wird.

Egal ob Windows 98 oder Windows Vista, bei mir funktioniert das mit einer gültigen Wavedatei auch.
ultraz06 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 84



BeitragVerfasst: Di 10.02.09 18:11 
es kommt die genau fehlermeldung EMCiDdevice error dann das mit dem gerät .
bei ner mp3 gehts a net
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 10.02.09 18:13 
Dass es mit MP3 nicht geht, ist normal.

Ich vermute, dass du in deinem System diesen Fehler hast:
support.microsoft.com/kb/171667/EN-US/
ultraz06 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 84



BeitragVerfasst: Di 10.02.09 18:20 
das habe ich auch schon nachgeschaut, aber war alles so eingestellt :(
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 10.02.09 18:22 
Dann schau dir eben z.B. die BASS Bibliothek an. Das ist ohnehin der bessere Weg und dann bist du unabhängig von solchen Fehlern.

Das mag zwar am Anfang etwas mehr Aufwand sein sich damit auseinanderzusetzen, lohnt aber in jedem Fall.
ultraz06 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 84



BeitragVerfasst: Di 10.02.09 18:29 
ok ich habe mir das jetzt gedownloadet aber ich blicke überhaupt nicht durch , da das ja auch noch englisch ist ^^
Boldar
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1555
Erhaltene Danke: 70

Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
BeitragVerfasst: Di 10.02.09 18:31 
mmh, also kein englisch zu können is ne schlechte Vorraussetzung...
ultraz06 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 84



BeitragVerfasst: Di 10.02.09 18:36 
was heißt kein eng aber das ist schon sehr komplex