AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Dark Player II

Dark Player II

Ein Thema von Nils_13 · begonnen am 6. Dez 2004 · letzter Beitrag vom 28. Mai 2007
Antwort Antwort
Seite 9 von 10   « Erste     789 10   
Benutzerbild von MagicAndre1981
MagicAndre1981

Registriert seit: 4. Jun 2004
Ort: Nordhausen
2.214 Beiträge
 
Delphi 7 Enterprise
 
#1

Re: Dark Player 1.7 (dAmp)

  Alt 25. Okt 2005, 17:19
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.
André
"A programmer is just a tool which converts caffeine into code", daran wirds wohl liegen, dass ich Abends nie pennen kann

Zitat von Luckie:
Nicht nur dass ihr offtopic geworden seid, jetzt werdet ihr selber im Offtopic noch offtopic
  Mit Zitat antworten Zitat
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#2

Re: Dark Player 1.7 (dAmp)

  Alt 25. Okt 2005, 18:20
Was sollen denn die beiden schwarzen "unsichtbaren" Edits rechts von Liednamen??
EasterEgg

//Edit: Wenn man Lieder zur Playlist hinzufügt, dann werden keine Unterordner durchsucht.
Chuck Norris has counted to infinity ... twice!
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#3

Re: Dark Player 1.7 (dAmp)

  Alt 25. Okt 2005, 18:35
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.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: Dark Player 1.8 (dAmp)

  Alt 25. Okt 2005, 19:02
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
Michael
  Mit Zitat antworten Zitat
Benutzerbild von Airblader
Airblader

Registriert seit: 29. Okt 2004
Ort: Geislingen an der Steige
742 Beiträge
 
#5

Re: Dark Player 1.8 (dAmp)

  Alt 25. Okt 2005, 19:55
@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
Ingo Bürk
Es nimmt der Augenblick, was Jahre geben.

Johann Wolfgang von Goethe
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#6

Re: Dark Player 1.8 (dAmp)

  Alt 26. Okt 2005, 08:01
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>
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Dark Player 1.8 (dAmp)

  Alt 26. Okt 2005, 08:17
Zitat von Nils_13:
Hi,

hier mein Update auf 1.8
- Laut Credis's: "Dark Player 1.7"
- 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!
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#8

Re: Dark Player 1.8 (dAmp)

  Alt 26. Okt 2005, 08:39
Zitat von TeronG:
Zitat von Nils_13:
Hi,

hier mein Update auf 1.8
- Laut Credis's: "Dark Player 1.7"
- 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 ?
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 <> 'TAGthen 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.
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#9

Re: Dark Player 1.8 (dAmp)

  Alt 27. Mai 2007, 21:30
Update: erster Post.
  Mit Zitat antworten Zitat
Gremlin

Registriert seit: 18. Apr 2006
Ort: Im Süden
176 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Dark Player II

  Alt 27. Mai 2007, 22:33
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.
Gruss Gremlin
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 9 von 10   « Erste     789 10   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:59 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