Delphi-PRAXiS
Seite 9 von 10   « Erste     789 10      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Dark Player II (https://www.delphipraxis.net/35403-dark-player-ii.html)

MagicAndre1981 25. Okt 2005 17:19

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.

Rastaman 25. Okt 2005 18:20

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.

Nils_13 25. Okt 2005 18:35

Re: Dark Player 1.7 (dAmp)
 
Zitat:

1 Für was ist das grüne Ding unter dem Schieberegler zum Songpos einstellen?
Wenn du lesen würdest wüsstest du, dass das der Volume-Regler ist.
Zitat:

2 Was um alles in der Welt soll dieser Kerl mit der Pumpgun (oder was das ist) in den Credits?
Ich wollte auch mal Scherzwn und hab Mick Thompson als Hintergrund genommen
Zitat:

3 Öffnen von m3u vermisse ich genauso
Da müsst ihr mir erklären, wie man das macht
Zitat:

4 Unter der Playlist kann man "Tag-Information" kaum lesen.
Ich weiß nicht, was du da meinst.
Zitat:

5 Fände es besser, wenn man nach dem Druck auf den "Öffnen" Knopp auch gleich das Lied abgespielt wird.
6Früher hast du dich beschwert das es falschrum sei. Ich finde das so besser.
Zitat:

7 Bei der Playlist sollte man auch nur einzelne Lieder einfügen können.
Zitat:

8 Das dunkle Design spricht mich nicht so an.
Da musst du dich noch eine Weile gedulden, das Skinsystem kommt noch.


Zitat:

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.
Stell dir die Laustärke so ein, wie du willst, sie wird ab jetzt abgespeichert.

Zitat:

Noch ein paar Anmerkungen:

- Wieso is die Echse so groß ?
- Das ganze läuft bei mir nur schellpend und sehr langsam (Laden einer Datei dauert ziemlich lange, im Gegensatz zum WMP)
- CPU-Auslastung ist auch nicht gerade wenig (600Mhz, 192 MB RAM)
Das problem hatte ich noch nie. Aber mit dem Skinsystem, dass noch kommt geht das. Das Programm ist so groß, weil es aus Bildern und weil es aus 1510 Zeilen besteht.

Zitat:

Was sollen denn die beiden schwarzen "unsichtbaren" Edits rechts von Liednamen??
EasterEgg Grübelnd...

//Edit: Wenn man Lieder zur Playlist hinzufügt, dann werden keine Unterordner durchsucht.
In die Edits kommen noch zwei ID3Tags, muss ich noch machen.
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.

Neutral General 25. Okt 2005 19:02

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 ;)

Airblader 25. Okt 2005 19:55

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

Nils_13 26. Okt 2005 08:01

Re: Dark Player 1.8 (dAmp)
 
Zitat:

Zitat von Airblader
@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

Ja nur wenn ich playlist.add(); nehme wird nur die m3u geladen. Außerdem, wie lade ich asx ?
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>

TeronG 26. Okt 2005 08:17

Re: Dark Player 1.8 (dAmp)
 
Zitat:

Zitat von Nils_13
Hi,

hier mein Update auf 1.8 :mrgreen:

- Laut Credis's: "Dark Player 1.7" :mrgreen:
- 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! :)

Nils_13 26. Okt 2005 08:39

Re: Dark Player 1.8 (dAmp)
 
Zitat:

Zitat von TeronG
Zitat:

Zitat von Nils_13
Hi,

hier mein Update auf 1.8 :mrgreen:

- Laut Credis's: "Dark Player 1.7" :mrgreen:
- 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! :)

Nächstes update kommt gleich, wenn das Problem mit FindAllFiles gelöst ist:
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:
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;
Hier müssen die ausgewählten Ordner rein, aber wie mach ich das ?
Delphi-Quellcode:
FillMP3FileList(files{mp3Folder}, mp3List.Items);
Delphi-Quellcode:
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;
Der weiße Punkt soll eigentlich einen - darstellen, aber delphi kriegts nicht hin. Warum der Bindestrich da ist könnt ihr hier lesen:
http://www.delphi-forum.de/viewtopic...=304683#304683
Ich hab das noch nicht gelöst, ich wäre euch für jede Hilfe dankbar.

Nils_13 27. Mai 2007 21:30

Re: Dark Player 1.8 (dAmp)
 
Update: erster Post.

Gremlin 27. Mai 2007 22:33

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.
Seite 9 von 10   « Erste     789 10      

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