Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi WMA Tags lesen und SCHREIBEN (https://www.delphipraxis.net/78147-wma-tags-lesen-und-schreiben.html)

EWeiss 30. Sep 2006 15:26

Re: WMA Tags lesen und SCHREIBEN
 
Zitat:

Zitat von Nils_13
Du meinst, ich soll aus Track und Year Integer machen ? Gerade das geht nicht....

Du verstehst mich nicht.
Wie du auf dem Bild sehen kannst steht an der stelle von Jahr 'asd'
Da sollte schon ein reales Jahr in nummern stehen. (kann ruhig als string übergeben werden)

Die Datei hat bei mir direkt ein AV verursacht.

Ansonsten wie oben schon geschrieben unter EDIT:
Alle Dateien von Windows habe ich getestet (die sich im system befinden)
Alle aber auch alle, funktionieren einwandfrei ohne Fehler.
Kann es sein das du in die Datei schreibst während sie am laufen ist? ;)

gruß

EWeiss 30. Sep 2006 15:35

Re: WMA Tags lesen und SCHREIBEN
 
Und noch etwas!!

Manche WMA Dateien sind mit dem 'DRM' Digital Rights Management gegen Raubcopien geschützt.
Versuchst du diese zu überschreiben wirst du kein glück haben.
Auch das verursacht unweigerlich einen AV.

Nur Private Dateien können mt dieser Unit beschrieben und auch zurückgelesen werden.
Diese ist kein Hack für DRM geschützte Dateien.

Gruß

Nils_13 30. Sep 2006 15:43

Re: WMA Tags lesen und SCHREIBEN
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ob da ein reeles Datum steht oder nicht ist bei meinem Player nicht AV gefährdet.
Damit du es dir besser vorstellen kannst, hier ein Bild davon:

EWeiss 30. Sep 2006 15:51

Re: WMA Tags lesen und SCHREIBEN
 
Zitat:

Zitat von Nils_13
Ob da ein reeles Datum steht oder nicht ist bei meinem Player nicht AV gefährdet.
Damit du es dir besser vorstellen kannst, hier ein Bild davon:

ahhh in der Playliste !
Das ist dein Problem, hat aber nichts mit der WMA Unit zu tun.
Den Titel bekommst du wenn du den WMATag einliest bevor du die Liste füllst.
if WMA then read tag und addiere zur Playlist.

Du mußt doch nur den Titel von fTitel an die Playliste übergeben.
Kann nicht sehen was da in deinen Code vorgeht.


gruß

Nils_13 30. Sep 2006 15:57

Re: WMA Tags lesen und SCHREIBEN
 
Delphi-Quellcode:
procedure TfrmMain.UpdateListBox;
var i : integer;
begin
  lbList.Clear;
  lbList.Items.BeginUpdate;
  for i := 0 to length(fFiles) - 1 do
  begin
    if
    lbList.Items.Add(fFiles[i].Artist + ' - ' + fFiles[i].Titel + ' [' + trim(DurationMinSec(IntToStr(GetSongLength))) + ']');
  end;
  lbList.Items.EndUpdate;
end;
Da kann nichts schief laufen.

Nachtrag:
Delphi-Quellcode:
  TAudioFile = class
  private
    FPfad: string;
    FDateiname: string;
    FOrdner: string;
    FDateiGroesse: Integer;
    //WMA-Tags
    FWMATrack : Integer;
    FWMAYear : Integer;
    //OggVorbis-Tags
    FOggTrack: Word;
    // aus den ID3-Tags (oder andere Meta-Tags)
    FArtist: string;
    FTitel: string;
    FAlbum: string;
    FTrack: WideString;
    FYear:  string;
    FGenre: string;
    FKommentar: string;
    FLyrics: string;
    // aus den MPEG-Infos
    FDauer: Integer;
    FBitrate: word;
    Fvbr: boolean;
    FChannelMode: String;
    FSamplerate:Integer;
    FEndung: String;
    procedure SetNA(filename: String);

    procedure GetMP3Info(filename:string);
    procedure GetWMAInfo(filename:string);
    procedure GetWAVInfo(filename:string);
    procedure GetAIFFInfo(filename:string);
    procedure GetOGGInfo(filename:string);

  public
    property pfad:     string read FDateiname;
    property Dateiname: string read FDateiname;
    property Ordner:   string read FOrdner;
    property DateiGroesse: Integer read FDateiGroesse;
    // OGG-Tags
    property OGGTrack: word read FOggTrack;
    // aus den ID3-Tags (oder andere Meta-Tags)
    property Artist: string read FArtist;
    property Titel: string read FTitel;
    property Album: string read FAlbum;
    property Track: widestring read FTrack;
    property Year:  string read FYear; // Ja, ein String!
    property Genre: string read FGenre;
    property Kommentar: string read FKommentar;
    property Lyrics: string read FLyrics;
    // aus den MPEG-Infos
    property Dauer: Integer read FDauer;
    property Bitrate: word read FBitrate;
    property vbr: boolean read Fvbr;
    property ChannelMode: String read FChannelMode;
    property Samplerate:Integer read FSamplerate;
    property Endung : string read FEndung write FEndung;

   constructor create;
   destructor destroy; override;
   procedure GetAudioData(filename:string);
   procedure SaveMP3Info(filename,titel,artist,album,track,year,comment,genre:string);
   procedure SaveWMAInfo(filename,a,b,c,d,e,f,g: String);
  end;

EWeiss 30. Sep 2006 16:01

Re: WMA Tags lesen und SCHREIBEN
 
Zitat:

Zitat von Nils_13
Delphi-Quellcode:
procedure TfrmMain.UpdateListBox;
var i : integer;
begin
  lbList.Clear;
  lbList.Items.BeginUpdate;
  for i := 0 to length(fFiles) - 1 do
  begin
    if
    lbList.Items.Add(fFiles[i].Artist + ' - ' + fFiles[i].Titel + ' [' + trim(DurationMinSec(IntToStr(GetSongLength))) + ']');
  end;
  lbList.Items.EndUpdate;
end;
Da kann nichts schief laufen.

Setz doch einfach nen Breakpunkt in die Zeile und prüfe ob der Titel da schon nicht ankommt.
Hoffe doch das du das array von fFiles als public declariert hast.
Vergleich die zeile doch mal mit dieser welche den Lauftext ausgibt.

gruß

Nils_13 30. Sep 2006 16:08

Re: WMA Tags lesen und SCHREIBEN
 
WatchList:
Delphi-Quellcode:
fFiles[i].Titel: 'Test 3 wmaf'#0#$16#0#1

EWeiss 30. Sep 2006 16:12

Re: WMA Tags lesen und SCHREIBEN
 
Zitat:

Zitat von Nils_13
WatchList:
Delphi-Quellcode:
fFiles[i].Titel: 'Test 3 wmaf'#0#$16#0#1

Jo ist also vorhanden.
Stehe jetzt auch auf den schlauch warum sich der Titel dann nicht
in deine Liste addiert.

hat aber definitiv nix mit der WMA Unit zu tun. :)

gruß

Nils_13 30. Sep 2006 16:14

Re: WMA Tags lesen und SCHREIBEN
 
Hm, bei der ATL-Unit lief das einwandfrei. Warum da Zeichen im Lauftext sind ist klar, denn man beachte
#0#$16#0#1. Wie bekomm ich wenigstens erstmal das raus.

EWeiss 30. Sep 2006 16:21

Re: WMA Tags lesen und SCHREIBEN
 
Zitat:

Zitat von Nils_13
Hm, bei der ATL-Unit lief das einwandfrei. Warum da Zeichen im Lauftext sind ist klar, denn man beachte
#0#$16#0#1. Wie bekomm ich wenigstens erstmal das raus.

In VB gibts ne repleace function welche in der lage ist den
wert hinter den Namen in nil zu konvertieren.
Keine ahnung obs sowas ähnliches in Delphi auch gibt.


gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:58 Uhr.
Seite 2 von 4     12 34      

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