AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi WMA Tags lesen und SCHREIBEN
Thema durchsuchen
Ansicht
Themen-Optionen

WMA Tags lesen und SCHREIBEN

Ein Thema von Nils_13 · begonnen am 29. Sep 2006 · letzter Beitrag vom 1. Okt 2006
Antwort Antwort
Seite 3 von 4     123 4      
Nils_13

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

Re: WMA Tags lesen und SCHREIBEN

  Alt 30. Sep 2006, 17:50
Ich denke es liegt an den Pointern. Pointer machen nie, was man will. Das nur Artist in de rListbox steht ist kein Wunder, denn der String wird durch #0 terminiert. Es gibt da den Copy-Befehl, aber die Zeichenfolge nach dem String wird vlt. von WMA zu WMA unterschiedlich sein und somit könnte das schwer werden.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#22

Re: WMA Tags lesen und SCHREIBEN

  Alt 30. Sep 2006, 18:01
Zitat von Nils_13:
Ich denke es liegt an den Pointern. Pointer machen nie, was man will. Das nur Artist in de rListbox steht ist kein Wunder, denn der String wird durch #0 terminiert. Es gibt da den Copy-Befehl, aber die Zeichenfolge nach dem String wird vlt. von WMA zu WMA unterschiedlich sein und somit könnte das schwer werden.
Bei mir auch in der TEdit 'show Pic' habe dort auch keine zusätzlichen zeichen.
Die zeichenfolge nach dem string ist abhängig vom Titel.
Dürfte aber uninteressant sein.

Du mußt den String spliten mit dem Delemiter "'" und alles wegschneiden was hinter dem 2 "'" zeichen steht.
Dann bleibt nur noch 'ads' übrig.

NE andere Idee habe ich da auch nicht.
Miniaturansicht angehängter Grafiken
hmm_197.jpg  
  Mit Zitat antworten Zitat
Nils_13

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

Re: WMA Tags lesen und SCHREIBEN

  Alt 30. Sep 2006, 18:08
Warum funktioniert es bei dir, aber nicht bei mir ?

In der Tagform wird alles korrekt angezeigt, aber nicht in der Playlist und im Lauftext.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#24

Re: WMA Tags lesen und SCHREIBEN

  Alt 30. Sep 2006, 18:10
Zitat von Nils_13:
Warum funktioniert es bei dir, aber nicht bei mir ?
Check doch mal die Properties deiner TEdit mit den
Properties TEDIT von meinen Sample.
Möglich das dort das problem liegt.

Gruß
  Mit Zitat antworten Zitat
Nils_13

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

Re: WMA Tags lesen und SCHREIBEN

  Alt 30. Sep 2006, 18:13
Hm? Die Tags sind in deiner Demo genauso, wie bei mir, nur in der Playlist und im Lauftext nicht.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#26

Re: WMA Tags lesen und SCHREIBEN

  Alt 30. Sep 2006, 18:15
Zitat von Nils_13:
Hm? Die Tags sind in deiner Demo genauso, wie bei mir, nur in der Playlist und im Lauftext nicht.
Was sind denn fFiles[i] ? controls ? oder array.

gruß
  Mit Zitat antworten Zitat
Nils_13

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

Re: WMA Tags lesen und SCHREIBEN

  Alt 30. Sep 2006, 18:18
fFiles : Array of TAudioFile; [ironie]Und noch was: Warum lädt immer jeder alles runter, obwohl ihn wahrscheinlich nur der Code interessiert...oh was ist denn das lad es mir mal runter.[/ironie] Eine ähnliche Unit kriegt ihr übrigens kostenlos im DF....

Hier mal die Unit, in der TAudioFile steht:
Angehängte Dateien
Dateityp: pas tags_169.pas (13,4 KB, 18x aufgerufen)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#28

Re: WMA Tags lesen und SCHREIBEN

  Alt 30. Sep 2006, 18:23
Zitat von Nils_13:
fFiles : Array of TAudioFile; Hier mal die Unit, in der TAudioFile steht:
Versuch doch mal folgendes.
Nur zum testen .. leg mal ein TEdit in deiner form an.
und weise den einen index 0 zu.
So das dieses als array angesprochen wird.
Dann lade die TEDIT dynamisch zur laufzeit.. und weise diesen den Titel zu.

Übergeben den Titel von TEDIT(1) oder was auch immer an die Playlist und schau was passiert.

gruß
  Mit Zitat antworten Zitat
Nils_13

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

Re: WMA Tags lesen und SCHREIBEN

  Alt 30. Sep 2006, 18:33
Ich habe es so gemacht:
Delphi-Quellcode:
//Lauftext
PlayFile(playindex);
with fFiles[playindex] do
begin
  s := Artist + ' - ' + Titel + ' [' + trim(DurationMinSec(IntToStr(GetSongLength))) + ']';
  lLauftext.Text := s;
  lLauftext.Active := True;
  lLauftext.Transparent := True;
  Application.Title := s;
  Memo1.Lines.Add(s);
end;
Das Ergebniss:
PaulE Der String wird terminiert. Das mit dem Copy wird auch mit deinem Prinzip sehr schwer, da sich die Zeichenfolge in der einen Datei z.B. 5 Zeichen lang ist und in der Anderen z.B. 7. Wir sollten dem Fehler auf den Grund gehen, anders geht es nicht, selbst wenn ist es sehr schlecht und fehleranfällig.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#30

Re: WMA Tags lesen und SCHREIBEN

  Alt 30. Sep 2006, 18:44
Zitat:
Der String wird terminiert. Das mit dem Copy wird auch mit deinem Prinzip sehr schwer, da sich die Zeichenfolge in der einen Datei z.B. 5 Zeichen lang ist und in der Anderen z.B. 7. Wir sollten dem Fehler auf den Grund gehen, anders geht es nicht, selbst wenn ist es sehr schlecht und fehleranfällig.
Ja ! Versuche dir ja zu helfen.
Hätte auch eine Lösung anzubieten.

Simple


Delphi-Quellcode:
Var
RTitle: Shortstring;
RArtist: Shortstring;
 
procedure TForm1.OpenPBClick(Sender: TObject);
var
  TagsData: PTagsData;
begin
  if not opendialog1.Execute then
    exit;
  ClearAll;
  lblFileName.Caption := opendialog1.FileName;
  SavePB.Enabled := true;
  New(TagsData);
  try
    OpenWMAFile(opendialog1.FileName, TagsData);
    fFilesize.Text := inttostr(TagsData.FileSize) + ' bytes';
    fDuration.Text := DurationToStr(TagsData.Duration, true) + ' sec ';
    fBitRate.Text := inttostr(TagsData.BitRate div 1000) + ' kbit';
    fVBR.Text := booltostr(Tagsdata.VBR, true);
    fEncoder.Text := TagsData.Version;
    fGenre.Text := TagsData.Genre;
    fArtist.Text := TagsData.Author;
    fComposer.Text := TagsData.Composer;
    fTitle.Text := TagsData.Title;
    fAlbum.Text := TagsData.Album;
    fYear.Text := TagsData.Year;
    fTrack.Text := TagsData.Track;
    fURL.Text := TagsData.Url;
    fCopyRight.Text := TagsData.CopyRight;
    fComments.Text := TagsData.Comments;
    fLyrics.Text := TagsData.Lyrics;
  finally
    DisPose(TagsData);
  end;
  // Schau hier das wars!
  RTitle := fTitle.Text;
  RArtist := fArtis.Text;
  s := RArtist + ' - ' + RTitle + ' [' + trim(DurationMinSec(IntToStr(GetSongLength))) + ']';
end;
Bei mir wird beim Debuggen alles einwandfrei ohne zusätze angezeigt.

EDIT: Könnte reichen wenn du deine Strings mal nach ShortString ändern würdest!

Gruß
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 05:36 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