Autor |
Beitrag |
ultraz06
      
Beiträge: 84
|
Verfasst: Mo 09.02.09 19:32
hi^^
ich habe folgendes problem ich will bei einem programm eine hintergrundmelodie laufen lassen
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
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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
|
Verfasst: Mo 09.02.09 20:00
|
|
ultraz06 
      
Beiträge: 84
|
Verfasst: Di 10.02.09 12:10
also soll ich den delphi mediaplayer für die hintergrundmelodie nehmen und playsound für den schuss?
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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 
      
Beiträge: 84
|
Verfasst: 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
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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 
      
Beiträge: 84
|
Verfasst: Di 10.02.09 16:37
ich habe es so gemacht
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
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Di 10.02.09 17:32
ultraz06 hat folgendes geschrieben : | getdir(0,Pfad); |
Hast du dir schonmal angeguckt, was genau GetDir tut?
Niemals darfst du GetDir nutzen, um den Programmordner herauszufinden! Für den Programmordner empfielt sich eine von den folgenden Varianten:
Delphi-Quelltext 1: 2:
| Pfad := ExtractFilePath(ParamStr(0)); Pfad := ExtractFilePath(Application.ExeName); |
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 ... ? 
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
ultraz06 
      
Beiträge: 84
|
Verfasst: Di 10.02.09 17:42
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
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 10.02.09 17:54
Bei mir funktioniert der Code 1:1 wie du ihn geschrieben hast.
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
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Di 10.02.09 17:56
jaenicke hat folgendes geschrieben : | 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.
Hast du es mal mit einer anderen Datei versucht?
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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 
      
Beiträge: 84
|
Verfasst: 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
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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 
      
Beiträge: 84
|
Verfasst: Di 10.02.09 18:20
das habe ich auch schon nachgeschaut, aber war alles so eingestellt 
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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 
      
Beiträge: 84
|
Verfasst: 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
      
Beiträge: 1555
Erhaltene Danke: 70
Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
|
Verfasst: Di 10.02.09 18:31
mmh, also kein englisch zu können is ne schlechte Vorraussetzung...
|
|
ultraz06 
      
Beiträge: 84
|
Verfasst: Di 10.02.09 18:36
was heißt kein eng aber das ist schon sehr komplex
|
|