![]() |
Media Player
Hi,
ich möchte nen Programm schreiben, dass Mp3 dateien findet und abspielt. bis jetzt taucht da aber immer ein Fehler auf:
Delphi-Quellcode:
Mein Problem:
var
Form3: TForm3; sl2: TStringList; implementation uses Unit1; {$R *.dfm} Procedure FindFiles (aPath, aFindMask: String; aWithSub: Boolean; aResult: tStrings; removePath:Boolean); //eine rekursive suche die funktionieren müsste Var FindRec: tSearchRec; Begin If (aPath = '') or (aFindMask = '') or Not Assigned (aResult) Then Exit; If aPath[Length (aPath)] <> '\' Then aPath := aPath + '\'; If FindFirst (aPath + aFindMask, faAnyFile, FindRec) = 0 Then Repeat If (FindRec.Name <> '.') and (FindRec.Name <> '..') Then begin if removePath then aResult.Add(ExtractFileName(aPath + FindRec.Name)) else aResult.Add(FindRec.Name); end; Until FindNext (FindRec) <> 0; FindClose (FindRec); If Not aWithSub Then Exit; If FindFirst (aPath + '*.*', faAnyFile, FindRec) = 0 Then Repeat If (FindRec.Name <> '.') and (FindRec.Name <> '..') Then If Boolean (FindRec.Attr and faDirectory) Then FindFiles (aPath + FindRec.Name, aFindMask, aWithSub, aResult, false); Until FindNext (FindRec) <> 0; FindClose (FindRec); End; procedure TForm3.Button1Click(Sender: TObject); begin if SelectDirectory('Verzeichnis wählen', '*:\', sDir) then begin if DirectoryExists(sDir) then begin FindFiles(sDir, '*.mp3', True, CheckListBox1.Items, true); //hier soll er dann die Mp3´s (nur den namen) auflisten FindFiles(sDir, '*.mp3', true, sl2, false); // und einmal den kompletten pfad+name+.mp3 in sl2 speichern. end; end; end; procedure TForm3.FormCreate(Sender: TObject); begin sl2 := TStringList.Create; end; procedure TForm3.FormDestroy(Sender: TObject); begin sl2.Free; end; procedure TForm3.Button2Click(Sender: TObject); Var i:integer; begin i:=0; repeat if checklistbox1.Checked[i] then begin MediaPLayer1.FileName:=sl2.Strings[i]; //hier möchte ich dann sl2 als pfad+name+.mp3 für die datei angeben MediaPlayer1.Open; MediaPlayer1.Play; //und die musik starten. end; i:=i+1; until i=checklistbox1.Count-1 end; Es kommt immer die Fehlermeldung: Die Datei wurde nicht gefunden. Bitte stellen sie sicher, dass der Pfad und der Dateiname richtig sind. Vier Fragen: 1. Wie kann ich dieses Problem lösen? 2. Wieso tritt dieses auf, also wo ist mein Denkfehler. 3. Gibt es sonst noch etwas, an meinem Programm, das ich ändern sollte, weil es anders besser schneller einfacher ect. funktioniert? und 4. Nach dem beheben des Fehlers, müsste doch so alles funktionieren oder? Naja, viele Fragen. Danke schonmal. MFG Jonsen |
Re: Media Player
Lass Dir doch vor dem Abspielen einmal den Dateinamen ausgeben und poste dann hier, was dabei herauskommt. Danach können wir weitersehen, zumindest ich bin gerade zu faul, auf Gut Glück nach dem Fehler zu suchen.
|
Re: Media Player
Wenn in sl2 nur der Pfad steht...
|
Re: Media Player
sorry hab beim kommentieren ein paar fehler gemacht:
in sl2 soll name, pfad und endung (.mp3) stehen. wenn ich mir anschaue was in sl2 steht da nur der name drin...wieso?
Delphi-Quellcode:
das false heisst doch, das der pfad nicht weggelassen werden soll....hilfe
FindFiles(sDir, '*.mp3', true, sl2, false);
|
Re: Media Player
aWithSub bedeutet wohl, ob Unterverzeichnisse mit durchsucht werden sollen oder nicht. oder wie meist du hätte diese zeile mit dem Dateipfad zu tun:
Delphi-Quellcode:
If Not aWithSub Then
|
Re: Media Player
ok ich glaub ich hab meinen fehler gerade gefunden
Delphi-Quellcode:
aber wie schreibe ich auch den pfad mit rein?
if removePath then
aResult.Add(ExtractFileName(aPath + FindRec.Name)) else aResult.Add(FindRec.Name); //<--- hier wird nur der name aufgelistet end; (wenn das der fehler ist) |
Re: Media Player
Ändere mal diese Stelle
Zitat:
Delphi-Quellcode:
if removePath then
aResult.Add(FindRec.Name) else aResult.Add(aPath + FindRec.Name); |
Re: Media Player
die suche funktioniert ja, nur was die mir in sl2 schreibt ist nicht das was ich gern hätte.
was das genau heisst....sorry weiss ich nicht genau...diese suche kommt aus einem der themen in diesem forum |
Re: Media Player
Hast Du den Code denn nun geändert? Nach meinem Dafürhalten müsste es dann nämlich funktionieren (obwohl der verwendete Code jetzt nicht ganz optimal ist).
|
Re: Media Player
DeddyH hat dir doch schon die Lösung gepostet.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz