Re: Dark Player 1.7 (dAmp)
Das Programm spielt die Lieder soooooo laut ab, ich dachte meine Ohren fliegen weg. Lautstärkeregler auf 3% und Windows-Regler fast ganz unten. -> Programm ist bei mir unbenutztbar.
|
Re: Dark Player 1.7 (dAmp)
Was sollen denn die beiden schwarzen "unsichtbaren" Edits rechts von Liednamen??
EasterEgg :gruebel: //Edit: Wenn man Lieder zur Playlist hinzufügt, dann werden keine Unterordner durchsucht. |
Re: Dark Player 1.7 (dAmp)
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Falls jemand eine Idee hat, wie man die unterordner mit durchsucht, ist hier der Code:
Delphi-Quellcode:
-
function Tpform.BrowseDialog(const Title: string; const Flag: integer): string;
var lpItemID : PItemIDList; BrowseInfo : TBrowseInfo; DisplayName : array[0..MAX_PATH] of char; TempPath : array[0..MAX_PATH] of char; begin Result:=''; FillChar(BrowseInfo, sizeof(TBrowseInfo), #0); with BrowseInfo do begin hwndOwner := Application.Handle; pszDisplayName := @DisplayName; lpszTitle := PChar(Title); ulFlags := Flag; end; lpItemID := SHBrowseForFolder(BrowseInfo); if lpItemId <> nil then begin SHGetPathFromIDList(lpItemID, TempPath); Result := IncludeTrailingBackslash(TempPath); GlobalFreePtr(lpItemID); end; end; Neue Version da. |
Re: Dark Player 1.8 (dAmp)
Ich weiß nicht obs schon gesagt wurde aber ich fänds schön wenn man mehrere Dateien auf einmal laden kann... Also Multiselect bei dem Opendialog an und halt Lademethode entsprechend anpassen. Ich denke mal wenn du das mit den ganzen Visualisierungen und so hinbekommen hast dann schaffst du das auch ;)
|
Re: Dark Player 1.8 (dAmp)
@Nils
Öffne eine m3u-Datei doch einfach mal im Editor. Wenn ich mich recht entsinne ist dies eine simple Textdatei, die die Pfade zu den Liedern enthält. air |
Re: Dark Player 1.8 (dAmp)
Zitat:
Code:
<ASX version="3.0">
<ENTRY><REF href="E:\Musik\Slipknot\Me_Inside_Slipknot(1).mp3" /></ENTRY> <ENTRY><REF href="E:\Musik\Slipknot\Slipknot - Duality.mp3" /></ENTRY> <ENTRY><REF href="E:\Musik\Slipknot\Slipknot - Iowa - 08 - Left Behind.mp3" /></ENTRY> <ENTRY><REF href="E:\Musik\Slipknot\Slipknot - My Plague.mp3" /></ENTRY> <ENTRY><REF href="E:\Musik\Slipknot\Slipknot (1).mp3" /></ENTRY> <ENTRY><REF href="E:\Musik\Slipknot\Slipknot (10).mp3" /></ENTRY> <ENTRY><REF href="E:\Musik\Slipknot\Slipknot (11).mp3" /></ENTRY> <ENTRY><REF href="E:\Musik\Slipknot\Slipknot (12).mp3" /></ENTRY> <ENTRY><REF href="E:\Musik\Slipknot\Slipknot (13).mp3" /></ENTRY> <ENTRY><REF href="E:\Musik\Slipknot\Slipknot (2).mp3" /></ENTRY> <ENTRY><REF href="E:\Musik\Slipknot\Slipknot (5).mp3" /></ENTRY> <ENTRY><REF href="E:\Musik\Slipknot\Slipknot (6).mp3" /></ENTRY> <ENTRY><REF href="E:\Musik\Slipknot\Slipknot (8).mp3" /></ENTRY> <ENTRY><REF href="E:\Musik\Slipknot\Slipknot (9).mp3" /></ENTRY> <ENTRY><REF href="E:\Musik\Slipknot\Slipknot -Spit_It_Out.mp3" /></ENTRY> <ENTRY><REF href="E:\Musik\Slipknot\slipknot__heretic_song.mp3" /></ENTRY> <ENTRY><REF href="E:\Musik\Slipknot\slipknot_-_wait_and_bleed_clayversion.mp3" /></ENTRY> </ASX> |
Re: Dark Player 1.8 (dAmp)
Zitat:
- Gaaanz oben wo der Filename steht hab ich nen kleinen weißen punkt (1 -2 pixel breit oder so ^^) - "Visualisierung AN/AUS" könntest du evtl. noch nen Hacken verpassen... - Zu Unterordner durchsuchen: FindAllFiles hier in der DP! :) |
Re: Dark Player 1.8 (dAmp)
Zitat:
Delphi-Quellcode:
procedure pform.InitFindAllFiles;
begin SetLength(FoundFiles, 0); cntFoundFiles := 0; end; procedure pform.FindAllFiles(RootFolder: string; Mask: string; Recurse: Boolean = True); var hFindFile : THandle; wfd : TWin32FindData; Filename : string; begin if RootFolder[length(RootFolder)] <> '\' then RootFolder := RootFolder + '\'; ZeroMemory(@wfd, sizeof(wfd)); wfd.dwFileAttributes := FILE_ATTRIBUTE_NORMAL; if Recurse then begin hFindFile := FindFirstFile(pointer(RootFolder + '*.*'), wfd); if hFindFile <> 0 then try repeat if wfd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY = FILE_ATTRIBUTE_DIRECTORY then if (string(wfd.cFileName) <> '.') and (string(wfd.cFileName) <> '..') then begin FindAllFiles(RootFolder + wfd.cFileName, Mask, Recurse); end; until FindNextFile(hFindFile, wfd) = False; finally Windows.FindClose(hFindFile); end; end; hFindFile := FindFirstFile(pointer(RootFolder + Mask), wfd); if hFindFile <> INVALID_HANDLE_VALUE then try repeat if wfd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY <> FILE_ATTRIBUTE_DIRECTORY then begin Filename := RootFolder + string(wfd.cFileName); if length(FoundFiles) = cntFoundFiles then SetLength(FoundFiles, length(FoundFiles) + 100); FoundFiles[cntFoundFiles] := Filename; Inc(cntFoundFiles); end; until FindNextFile(hFindFile, wfd) = False; finally Windows.FindClose(hFindFile); setlength(FoundFiles, cntFoundFiles); end; end;
Delphi-Quellcode:
Hier müssen die ausgewählten Ordner rein, aber wie mach ich das ?
procedure Tpform.plist_overClick(Sender: TObject);
var mp3Folder, files : string; begin mp3Folder := BrowseDialog('Choose a folder with mp3 files', BIF_RETURNONLYFSDIRS); if mp3Folder = '' then Exit; txtFolder.Caption := mp3Folder; files := StrToFloat(InitFindAllFiles); // files := FindAllFiles(mp3folder); //fill the list box with mp3 files FillMP3FileList(files{mp3Folder}, mp3List.Items); end;
Delphi-Quellcode:
FillMP3FileList(files{mp3Folder}, mp3List.Items);
Delphi-Quellcode:
Der weiße Punkt soll eigentlich einen - darstellen, aber delphi kriegts nicht hin. Warum der Bindestrich da ist könnt ihr hier lesen:
procedure Tpform.FillID3TagInformation(mp3File:string; Title,Artist,Album,Year,Genre,Comment:TEdit);
var //fMP3: file of Byte; ID3 : TID3Rec; fmp3: TFileStream; begin fmp3:=TFileStream.Create(mp3File, fmOpenRead); try fmp3.position:=fmp3.size-128; fmp3.Read(ID3,SizeOf(ID3)); finally fmp3.free; end; { or the non Stream approach - as in ChangeID3Tag procedure try AssignFile(fMP3, mp3File); Reset(fMP3); try Seek(fMP3, FileSize(fMP3) - 128); BlockRead(fMP3, ID3, SizeOf(ID3)); finally end; finally CloseFile(fMP3); end; } if ID3.Tag <> 'TAG' then begin Title.Text:='Wrong or no ID3 tag information'; Artist.Text:='Wrong or no ID3 tag information'; Album.Text:='Wrong or no ID3 tag information'; Year.Text:='Wrong or no ID3 tag information'; Genre.Text:='Wrong or no ID3 tag information'; Comment.Text:='Wrong or no ID3 tag information'; end else begin Title.Text:=ID3.Title; Artist.Text:=ID3.Artist; Album.Text:=ID3.Album; Year.Text:=ID3.Year; if ID3.Genre in [0..MaxID3Genre] then Genre.Text:=ID3Genre[ID3.Genre] else Genre.Text:=IntToStr(ID3.Genre); Comment.Text:=ID3.Comment end; end; procedure Tpform.FillMP3FileList(Folder: string; sl: TStrings); var Rec : TSearchRec; begin sl.Clear; if SysUtils.FindFirst(Folder + '*.mp3', faAnyFile, Rec) = 0 then try repeat sl.Add(Rec.Name); until SysUtils.FindNext(Rec) <> 0; finally SysUtils.FindClose(Rec); end; end; function Tpform.BrowseDialog(const Title: string; const Flag: integer): string; var lpItemID : PItemIDList; BrowseInfo : TBrowseInfo; DisplayName : array[0..MAX_PATH] of char; TempPath : array[0..MAX_PATH] of char; begin Result:=''; FillChar(BrowseInfo, sizeof(TBrowseInfo), #0); with BrowseInfo do begin hwndOwner := Application.Handle; pszDisplayName := @DisplayName; lpszTitle := PChar(Title); ulFlags := Flag; end; lpItemID := SHBrowseForFolder(BrowseInfo); if lpItemId <> nil then begin SHGetPathFromIDList(lpItemID, TempPath); Result := IncludeTrailingBackslash(TempPath); GlobalFreePtr(lpItemID); end; end; http://www.delphi-forum.de/viewtopic...=304683#304683 Ich hab das noch nicht gelöst, ich wäre euch für jede Hilfe dankbar. |
Re: Dark Player 1.8 (dAmp)
Update: erster Post.
|
Re: Dark Player II
Hallo Nils_13,
ich hab mal dein Programm angeschaut und mir sind nachfolgende Dinge aufgefallen: - Oberfläche englisch und nicht wählbar auf andere Sprache (ja ich verstehe englisch, aber andere Personen könnten damit Probleme haben, aber ich kann natürlich nicht die Zielgruppe beurteilen) - Drag und Drop von Liedern -> Playliste wird gefüllt, aber Anzeige 'No files...' - Buttons 'Add' bis 'Save playlist: Dialoge öffnen im Hintergrund - Buttons 'Next' bis 'Back' erzeugen eine Meldung 'Division durch null', wenn Playliste leer ist. - Button 'Tags' liefert eine Zugriffsverletzung, wenn Playliste leer ist. - Buttons werden nicht anhand Ihrer möglichen Funktionalitäten ein/ausgeschaltet. - Dialoge 'Add' bis 'Save playlist: Dialoge haben keinen Dateibrowser in der Auswahl - Die Dialoge enthalten entweder zu viel Leerraum (Main) oder viel zu wenig (Zusatzdialoge) - Die Dialoge öffnen alle zu Beginn im oberen linken Eck. Zentriert wärs besser. - Die Combos sind viel höher als die Eingabefelder Die Oberfläche ist alles andere als 'prickelnd', dort liegt wirklich extrem viel Verbesserungspotential. Man weiss nicht wirklich was das Programm macht und warum. Oft sind die Designelemente so gewählt, das man rein intuitiv entscheiden muss und deshalb mehrere Versuche notwendig sind. Verstehe mich nicht falsch, du hast sicher viel Arbeit und Zeit investiert, aber ein Programm muss von der Funktionalität und der Oberfläche/ Benutzerführung (im besten Falle selbsterklärend) i.O. sein. - Man weiss nicht was die Regler in Ihrer Funktion bewirken - Teilweise keine funktionalen Beschriftungen - Unlogische Anordnung - Keine Labels/Hints - Dann ist noch ein genialer Effekt bei den oberen vertikalen Reglern -> Musikstück laden, linken Regler ungefähr mit der linken Kante auf die Mitte der letzten Null (von 00:00) setzen, dann fängt plötzlich der rechte Regler automatisch von ca. 50% auf 0% und wieder auf ca. 50% zu wechseln (endlos) - Pause-Knopf unterbricht die Wiedergabe, nochmal Pause setzt die Wiedergabe fort (Eine Umbenennung in 'Continue' wär gut) Die Musik wird soweit abgespielt, einen Vergleich zur Qualität habe ich momentan nicht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz