Entwickler-Ecke
Multimedia / Grafik - brauche Hilfe für Musik abspielen
Swagger Jackin - So 28.02.10 17:55
Titel: brauche Hilfe für Musik abspielen
Wenn ich bei einer Combobox Musik auswähle, soll das Programm jede ausgewählte Musik abspielen. Irgendwie spielt er nur die erste Musik ab, die ich definiert habe. Kann mir jemand sagen, warum ?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65:
| procedure TForm15.Button1Click(Sender: TObject); begin case ComboBox1.ItemIndex of 0: begin Form1.mediaPlayer1.FileName := 'Collapse.wav'; Form1.mediaplayer1.Open; Form1.mediaplayer1.Play; if Form1.mediaPlayer1.Position = Form1.mediaPlayer1.Length then begin Form1.mediaPlayer1.Rewind; Form1.mediaPlayer1.Play; end; end; 1: begin Form1.mediaplayer1.FileName := 'horse.wav'; Form1.mediaplayer1.Open; Form1.mediaplayer1.Play; if Form1.mediaPlayer1.Position = Form1.mediaPlayer1.Length then begin Form1.mediaPlayer1.Rewind; Form1.mediaPlayer1.Play; end; end; 2: begin Form1.mediaplayer1.FileName := 'electro.wav'; Form1.mediaplayer1.Open; Form1.mediaplayer1.Play; if Form1.mediaPlayer1.Position = Form1.mediaPlayer1.Length then begin Form1.mediaPlayer1.Rewind; Form1.mediaPlayer1.Play; end; end; 3: begin Form1.mediaplayer1.FileName := 'Memories.wav'; Form1.mediaplayer1.Open; Form1.mediaplayer1.Play; if Form1.mediaPlayer1.Position = Form1.mediaPlayer1.Length then begin Form1.mediaPlayer1.Rewind; Form1.mediaPlayer1.Play; end; end; 4: begin Form1.mediaplayer1.FileName := 'Jackin.wav'; Form1.mediaplayer1.Open; Form1.mediaplayer1.Play; if Form1.mediaPlayer1.Position = Form1.mediaPlayer1.Length then begin Form1.mediaPlayer1.Rewind; Form1.mediaPlayer1.Play; end; end; end; |
Moderiert von
Narses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am So 28.02.2010 um 22:19
COMMANDER86 - So 28.02.10 18:27
Moin,
wird der Titel fortlaufend abgespielt? Also... wenn er zu Ende ist, fängt er von vorne wieder an? Wenn ja, kann es vl. sein, dass der MediaPlayer, während er läuft, keine neue Datei einladen kann. Füge mal die Zeile:
Delphi-Quelltext
1:
| Form1.MediaPlayer1.Stop; |
ein, bevor Du den FileName änderst.
PS:
Das hier:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| Form1.mediaplayer1.Open; Form1.mediaplayer1.Play; if Form1.mediaPlayer1.Position = Form1.mediaPlayer1.Length then begin Form1.mediaPlayer1.Rewind; Form1.mediaPlayer1.Play; end; |
...kannnst Du auch
einmal unter den Case-Bereich schreiben. Da das bei jeden Eintrag augenscheinlich das Selbe ist, macht das da drin nicht viel Sinn.
//EDIT: Änder' bitte den Titel ab. Der ist nicht sonderlich aussagekräftig. Danke!
LG
Fabian
F34r0fTh3D4rk - So 28.02.10 18:31
Es wäre klasse, wenn du diesem Thread einen aussagekräftigeren Titel geben würdest.
Dein Code weist sehr viele Redundanzen auf, das ist schlecht für die Wartbarkeit, so gehts kürzer:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TForm15.Button1Click(Sender: TObject); const filenames: array[0..4] of String = ('Collapse.wav', 'horse.wav', '...', '...', '...'); begin if ((Combobox1.itemindex < low(filenames)) or (combobox1.itemindex > high(filenames))) then exit; Form1.mediaPlayer1.FileName := filenames[combobox1.itemindex]; Form1.mediaplayer1.Open; if Form1.mediaPlayer1.Position = Form1.mediaPlayer1.Length then Form1.mediaPlayer1.Rewind; Form1.mediaplayer1.Play; end; |
Der sollte genau das selbe tun wie dein Code, also sollte der Fehler auch erhalten geblieben sein.
Christian S. - So 28.02.10 18:38
Hallo,
bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den
Richtlinien [
http://www.entwickler-ecke.de/richtlinien.html]:
1.2 Beiträge: |
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...] |
Einfach oben bei Deinem ersten Beitrag auf

oder

klicken und den Titel ändern. Danke Dir!
Viele Grüße,
Christian
Swagger Jackin - So 28.02.10 19:27
ey danke, ich werde gleich mal den Quelltext von euch ausprobieren!!
Swagger Jackin - So 28.02.10 20:04
Swagger Jackin hat folgendes geschrieben : |
ey danke, ich werde gleich mal den Quelltext von euch ausprobieren!! |
Leider spielt er immer noch nur die Collapse.wav datei, eagl ob ich die anderen wähle. Wenn ich die horse.wav wähle soll sie abgespielt werden, will aber nicht.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TForm15.Button1Click(Sender: TObject); const filenames: array[0..4] of String = ('Collapse.wav', 'horse.wav', '...', '...', '...'); begin if ((Combobox1.itemindex < low(filenames)) or (combobox1.itemindex > high(filenames))) then exit; Form1.mediaPlayer1.FileName := filenames[combobox1.itemindex]; Form1.mediaplayer1.Open; if Form1.mediaPlayer1.Position = Form1.mediaPlayer1.Length then Form1.mediaPlayer1.Rewind; Form1.mediaplayer1.Play; end; |
--> fruchtet noch nicht.
Moderiert von
Narses: Delphi-Tags hinzugefügt
F34r0fTh3D4rk - So 28.02.10 20:07
Zitat: |
Der sollte genau das selbe tun wie dein Code, also sollte der Fehler auch erhalten geblieben sein. |
Oder was meinst du mit "fruchten"? Hast du mal
stop() an den Anfang hinzugefügt?
Swagger Jackin - So 28.02.10 20:13
F34r0fTh3D4rk hat folgendes geschrieben : |
Zitat: | Der sollte genau das selbe tun wie dein Code, also sollte der Fehler auch erhalten geblieben sein. |
Oder was meinst du mit "fruchten"? Hast du mal stop() an den Anfang hinzugefügt? |
fruchten = es geht oder nicht
mit stop hab ich noch nicht ausprobiert, weil ich es nicht weiß was amn dahin schreibt. :autsch:
F34r0fTh3D4rk - So 28.02.10 20:28
COMMANDER86 hat folgendes geschrieben : |
Moin,
wird der Titel fortlaufend abgespielt? Also... wenn er zu Ende ist, fängt er von vorne wieder an? Wenn ja, kann es vl. sein, dass der MediaPlayer, während er läuft, keine neue Datei einladen kann. Füge mal die Zeile:
Delphi-Quelltext 1:
| Form1.MediaPlayer1.Stop; |
ein, bevor Du den FileName änderst. |
Sind Lesen und Abschreiben wirklich so schwierig?
Swagger Jackin - So 28.02.10 22:18
Moderiert von
Narses: Komplett-Zitat des letzten Beitrags entfernt.
teilweise ja. 8)
---
Moderiert von
Narses: Beiträge zusammengefasst---
Mit dem Stop stürzt das Programm ab. zeigt Fehler beim Spielfeld an.
:( :(
Blackheart666 - So 28.02.10 22:38
Vieleicht solltest Du es mit MP.Close versuchen da du ja beim wechseln den MP ja wieder öffnest.
Swagger Jackin - So 28.02.10 22:52
Blackheart666 hat folgendes geschrieben : |
Vieleicht solltest Du es mit MP.Close versuchen da du ja beim wechseln den MP ja wieder öffnest. |
Jetzt stürtzt das Spiel nicht mehr ab, aber spielt immer nur das erste Lied, nicht die anderen, egal ob man sie auswählt.
Ein neues Problem ist aufgetreten, das wenn ich die Musik bei den Einstellungen auswähle, sie abgespielt wird, kann ich im Menü die Musik nicht mehr stoppen, Spiel stürzt ab, sobald ich auf stop drücke.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!