AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi MediaPlayer und Playliste?
Thema durchsuchen
Ansicht
Themen-Optionen

MediaPlayer und Playliste?

Ein Thema von mlspider · begonnen am 10. Nov 2005 · letzter Beitrag vom 19. Nov 2005
Antwort Antwort
mlspider

Registriert seit: 22. Okt 2003
Ort: Berlin
661 Beiträge
 
Delphi 7 Enterprise
 
#1

MediaPlayer und Playliste?

  Alt 10. Nov 2005, 16:04
Hi,

ich bin seit längerem dabei, meinen Player auf eine neuere Version zu bringen. Ich möchte einen CD-Player mit einer Playlist proggen, die sich die Titelinfos von Freedb.org holt. Soweit klappt auch alles. Meine Listbox, was die Playliste darstellen soll wird mit den Titeln gefüllt.

Nun mein Problem, da ich denke, dass ich mir eine Sackgasse gebaut habe. Wie kann ich nun den MediaPlayer dazu bringen auf Klick in meiner Listbox den entsprechenden Titel abzuspielen? Und wie könnte die automatische Selektion des gerade laufenden Titels realisiert werden.

Hier mal der "unsaubere" Quellcode meines Projekts.

Hätte ich fast vergessen. Listbox3 soll die Playliste sein.

Sorry, das ich hier die gesamte Unit poste.

Delphi-Quellcode:
unit CDPlayerUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, LMDControl, LMDBaseControl, LMDBaseGraphicControl, LMDBaseLabel,
  LMDCustomLabel, LMDCustomLabelFill, LMDLabelFill, GIFImage, ExtCtrls,
  jpeg, LMDCustomComponent, LMDBaseController, LMDCustomContainer,
  LMDCustomImageList, LMDBitmapList, LMDBaseGraphicButton,
  LMDCustomMMButton, LMDMMButton, StdCtrls, bnw_bass_cdrip, bnw_cddb,
  IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP,
  MPlayer, LMDTimer, mmSystem;

type
  TCDPlayer = class(TForm)
    Image1: TImage;
    Bevel1: TBevel;
    Image5: TImage;
    Image4: TImage;
    LMDLabelFill1: TLMDLabelFill;
    Image3: TImage;
    Bevel2: TBevel;
    Image6: TImage;
    Label5: TLabel;
    Label2: TLabel;
    Bevel3: TBevel;
    Button1: TLMDMMButton;
    Button2: TLMDMMButton;
    Button3: TLMDMMButton;
    Button4: TLMDMMButton;
    Button5: TLMDMMButton;
    Button6: TLMDMMButton;
    Button7: TLMDMMButton;
    LMDMMButton1: TLMDMMButton;
    LMDBitmapList1: TLMDBitmapList;
    LMDBitmapList2: TLMDBitmapList;
    Image2: TImage;
    Label3: TLabel;
    ComboBox1: TComboBox;
    Label1: TLabel;
    Timer1: TTimer;
    ListBox1: TListBox;
    ListBox3: TListBox;
    Button8: TButton;
    edt_disclength: TEdit;
    edt_generated: TEdit;
    Timer2: TTimer;
    Button9: TButton;
    MediaPlayer1: TMediaPlayer;
    Label4: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Timer3: TLMDHiTimer;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    CheckBox1: TCheckBox;
    procedure Label3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure LMDMMButton1Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Timer3Timer(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  CDPlayer: TCDPlayer;
  CDAudio : Tbasscdrip;
  CDDB : Tcddbinfo;

implementation

uses NavigatorUnit;

{$R *.dfm}

procedure TCDPlayer.Label3Click(Sender: TObject);
begin
 Navigator.Show;
 CDPlayer.Close;
end;

procedure TCDPlayer.FormCreate(Sender: TObject);
var i : integer;
    s : string;
begin
 CDAudio := Tbasscdrip.create(Handle);
 CDDB := Tcddbinfo.create(Self);

 for i := 0 to 5 do
 begin
  s := CDAudio.GetDriveDescription(i);
  if s <> 'then
   combobox1.items.add(s);
 end;

 combobox1.ItemIndex := 0;
end;

procedure TCDPlayer.Timer1Timer(Sender: TObject);
 var i : integer;
begin
 if CDDB.GetFoundCount > 0 then
 begin
  for i := 0 to CDDB.GetFoundCount-1 do
  begin
   listbox1.Items.Add(CDDB.GetFoundAlbum(i));
  end;
 end;
 timer1.Enabled := false;
 if CheckBox1.Checked then
 Timer2.Enabled:=True;
end;

procedure TCDPlayer.ListBox1Click(Sender: TObject);
var i : integer;
begin
 for i := 0 to listbox1.Items.Count-1 do
 begin
  CDDB.ReadAlbumInfos(i);
 end;
end;

procedure TCDPlayer.Button8Click(Sender: TObject);
var Album : TCDDBAlbum;
    i,j : integer;
begin
 for i := 0 to listbox1.Items.Count-1 do
 begin
  if listbox1.Selected[i] then
  begin
   Album := CDDB.GetAlbumInfos;
   Label4.Caption:=Album.Album;
   Label7.Caption:=Album.Genre;
   edt_generated.Text := Album.Generated;
   edt_disclength.Text:= Album.DiscLength;
   Label6.Caption:=Album.Year;
   for j := 0 to length(Album.Artist)-1 do
    listbox3.Items.Add(Album.Artist[j]+' - '+Album.Title[j]);
   break;
   Listbox3.Focused;
  end;
 end;
end;

procedure TCDPlayer.LMDMMButton1Click(Sender: TObject);
begin
 Listbox3.Clear;
 Listbox1.Clear;
 Label4.Caption:='';
 Label6.Caption:='';
 Label7.Caption:='';
 Label10.Visible:=False;
 Label11.Visible:=False;
 Label12.Visible:=False;
 Label13.Visible:=False;
 Label14.Visible:=False;
 Label8.Visible:=False;
 Label9.Visible:=False;
 Listbox3.Visible:=False;
end;

procedure TCDPlayer.Button4Click(Sender: TObject);
begin
 Label1.Caption:=FormatDateTime('dddd' + 'dd', Now);
 CDDB.LookUpAlbum('http://freedb.freedb.de',CDAudio.GetDiscCDDBID(combobox1.itemindex),
                  'nix@freenet.de','test','1');
 timer1.enabled := true;
 Button4.Font.Color:=clLime;
 MediaPlayer1.Play;
 Timer3.Enabled:=True;
end;

procedure TCDPlayer.Timer2Timer(Sender: TObject);
begin
 Listbox1.SetFocus;
 Listbox1.Selected[0]:=True;
 Listbox1Click(nil);
 Timer2.Enabled:=False;
 Button8Click(nil);
 Listbox3.SetFocus;
 Listbox3.Selected[0]:=True;
end;

procedure TCDPlayer.Button3Click(Sender: TObject);
begin
 MediaPlayer1.Stop;
 Button3.Font.Color:=clRed;
 Button4.Font.Color:=clWhite;
 Timer3.Enabled:=False;
end;

procedure TCDPlayer.Button7Click(Sender: TObject);
begin
 MediaPlayer1.Next;
end;

procedure TCDPlayer.Button1Click(Sender: TObject);
begin
 MediaPlayer1.Previous;
end;

procedure TCDPlayer.Button5Click(Sender: TObject);
begin
 MediaPlayer1.Pause;
end;

procedure TCDPlayer.FormShow(Sender: TObject);
begin
 Listbox3.Visible:=True;
 Label10.Visible:=True;
 Label11.Visible:=True;
 Label12.Visible:=True;
 Label13.Visible:=True;
 Label14.Visible:=True;
 Label8.Visible:=True;
 Label9.Visible:=True;
end;

procedure TCDPlayer.Timer3Timer(Sender: TObject);
var Trk, Min, Sec: Word;
begin
 with MediaPlayer1 do
  begin
    Trk := MCI_TMSF_TRACK(Position);
    Min := MCI_TMSF_MINUTE(Position);
    Sec := MCI_TMSF_SECOND(Position);
    label8.Caption := 'Track '+Format('%.2d', [Trk]);
    Label9.Caption := Format('%.2d:%.2d', [Min, Sec]);
end;
end;

end.
wäre für jede Hilfe dankbar, da ich der Meinung bin, in eine Sackgasse geraten zu sein.
Mario
Handbücher haben einen hohen Heizwert!!!

http://geprellte-ebay-kaeufer.de
  Mit Zitat antworten Zitat
Benutzerbild von Obi-Wan
Obi-Wan

Registriert seit: 16. Feb 2005
15 Beiträge
 
Delphi 2005 Personal
 
#2

Re: MediaPlayer und Playliste?

  Alt 19. Nov 2005, 20:49
Hmm eventuell im OnClick Ereignis bei der listbox das hinzufügen:

Code:
MediaPlayer1.FileName := listbox1.Items.Strings[listbox1.ItemIndex];
Dann sollte in der Listbox sowas wie: C:\Test.avi stehen als Pfad.
Hoffe das hilft (wenn du es noch brauchst )

MfG Florian
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:42 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