Entwickler-Ecke
Multimedia / Grafik - TMediaPlayer: Fehler beim Starten von MCI
BlackWolf - Do 30.12.04 01:59
Titel: TMediaPlayer: Fehler beim Starten von MCI
hoi,
bin gerade dabei nen kleinen mp3-player zu bauen. alles funzt soweit einwandfrei, ich hab ne TShellTreeView komponente auf der man eine mp3-datei auswählen kann, sobald man dies tut werden automatisch alle mp3-dateien desselben verzeichnisses in die playlist (TCheckListBox) geladen und nacheinander abgespielt, auserdem werden die ID3-tags ausgelesen. passt also alles. nun wollte ich einbauen das, wenn man auf eine datei in der playlist (also nicht dem TShellTreeView sondern der selbst erzeugten dateiliste aus mp3s) doppelklickt, das entsprechende file auch abgespielt wird. allerdings bekomme ich dort einen error. kurz der code:
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:
| procedure TForm1.PlaylistBox2DblClick(Sender: TObject); var laufwerk: char; verzeichnisse, datei: string; Playlist: TStringList; pos: Integer; begin try MediaPlayer.Stop; MediaPlayer.Close; ProcessPath(MediaPlayer.FileName,laufwerk,verzeichnisse,datei); Playlist := TStringList.Create; GetFiles(verzeichnisse,Playlist, '*.mp3'); MediaPlayer.FileName := Playlist[PlaylistBox2.ItemIndex]; ProcessPath(MediaPlayer.FileName,laufwerk,verzeichnisse,datei); LabelDatei.Caption := datei; ID3Tags.FileName := MediaPlayer.FileName; ID3Tags.active := TRUE; LabelInterpret.Caption := ID3Tags.Artist; LabelAlbum.Caption := ID3Tags.Year+' - '+ID3Tags.Album; LabelTitel.Caption := ID3Tags.Title; LabelGenre.Caption := ID3Tags.Genre; PlaylistPos := Playlist.IndexOf(MediaPlayer.FileName); pos := 0; while (pos < PlaylistBox2.Count) do begin PlaylistBox2.Checked[pos] := FALSE; pos := pos+1; end; PlaylistBox2.Checked[PlaylistPos] := TRUE; Playlist.Free; MediaPlayer.Open; MediaPlayer.Play; except end; end; |
so ... nun bekomme ich aber in der zeile "MediaPlayer.Play;" den fehler: 'Fehler beim Starten von MCI'
ich habe ansonsten nie probleme mit dem MediaPlayer gehabt und er wurde auch vorher gestoppt. das file wird auch gefunden ... woran kann das nun liegen?
thx mfg bw
retnyg - Do 30.12.04 03:17
vielleicht wird deinem mediaplayer ein ungültiger filename übergeben, ohne pfadname oder so ^^
kannst du mal deine id3-auslese funktion posten ?
BlackWolf - Do 30.12.04 03:41
ne kann eigentlich nicht sein das problem hatte ich davor da bekam ich die exception 'datei nicht gefunden' auserdem stimmt der pfad (hab ihn mir anzeigen lassen).
die tags werden mit einer extra komponente gelesen
mfg bw
retnyg - Do 30.12.04 04:12
überprüf das mal lieber mit dem debugger direkt vor dem auruf von .play
wo kriegt man die id3 unit ? wäre dran intressiert
retnyg - Do 30.12.04 04:51
ouch... die unit is ja ganz schön fett, 65 KB. ich hatte eigentlich vor das nach KOL zu portieren... die arbeit werde ich mir aber ersparen. rein theoretisch sollte es auch mit ein paar Zeilen Code möglich sein diese Infos aus den Mp3s zu extrahieren. werd mir woll mal die spezifikation reinziehen müssen ^^
retnyg - Do 30.12.04 05:03
hmm mir fällt da grade auf dass du zwar die position deines Klicks ausfindig machst, dann aber nicht den dazugehörigen string ausliest und dem dem mediaplayer übergibst
von der ShellTreeView hab ich noch nie was gehört, was ist an der anders als an der standard treeview ?
BlackWolf - Do 30.12.04 15:30
in der ShellTreeView kompo wird die aktuelle dateistruktur deines pcs angezeigt, in der normalen TreeView kompo kann man selbst wählen was angezeigt wird.
doch der dazugehörige string wird mit der zeile
Delphi-Quelltext
1:
| MediaPlayer.FileName := Playlist[PlaylistBox2.ItemIndex]; |
zugewiesen. da in der Playlist-Stringliste zwangsweise das gleiche steht wie in der PlaylistBox2-komponente (da genau diese Stringliste in die komponente geladen wurde) ist es völlig gleich, ob ich Playlist oder PlaylistBox2 nehme ...
mfg bw
EDIT: lol es geht. nachdem ich meinen pc hochgefahren habe gab es keien probs mehr ... scheint an irgendnem anderne programm gelegen zu haben obwohls komisch is ... :D
Moderiert von
Tino: Delphi-Tags hinzugefügt.
retnyg - Do 30.12.04 19:12
tjo liegt sicher daran dass die TMediaPlayer Kompo im Prinzip nix andres tut als den MediaPlayer von Windows per DLL einzubinden.
Hat ein andres Programm auch ne Instanz von dem am laufen kanns Trouble geben.
Es gibt aber auf SourceForge.net einen komplett freien MP3-Codec für Delphi, der ziemlich klein sein soll. -> siehe
http://www.thaddy.com
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!