AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Pfad aus ListBox für Bass.dll auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Pfad aus ListBox für Bass.dll auslesen

Ein Thema von Marcasso · begonnen am 8. Dez 2006 · letzter Beitrag vom 8. Dez 2006
Antwort Antwort
Marcasso

Registriert seit: 16. Sep 2006
39 Beiträge
 
#1

Pfad aus ListBox für Bass.dll auslesen

  Alt 8. Dez 2006, 10:18
hallo, ich arbeite im mom an einem mp3 player als schulprojekt und habe (nur) noch bis ende januar zeit..
in form2 habe ich eine listbox, in der alle lieder mit ner opendialog geöffnet werden
MP ist der BassDllPlayer
mit direkter pfadangabe habe ich es schon geschafft ein lied abzuspielen, jedoch weiß ich nicht genau wie ich den pfad aud ner listbox auslese...
Delphi-Quellcode:
procedure TForm1.PlayClick(Sender: TObject);
begin
  MP.play(form2.ListA.Items.GetNamePath);
  //MP.play('C:\Dokumente und Einstellungen\Peppi\Desktop\Musik\No Signs.mp3');
  bar.Max := MP.length;
end;

danke
  Mit Zitat antworten Zitat
Relicted

Registriert seit: 24. Jan 2006
Ort: Iserlohn
646 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Pfad aus ListBox für Bass.dll auslesen

  Alt 8. Dez 2006, 10:24
moin!

form2.ListA.Items.GetNamePath sollte form2.ListA.Items.Text heißen...

damit hast du immer den im moment selektierten eintrag der listbox.

Gruß
Reli
  Mit Zitat antworten Zitat
Marcasso

Registriert seit: 16. Sep 2006
39 Beiträge
 
#3

Re: Pfad aus ListBox für Bass.dll auslesen

  Alt 8. Dez 2006, 10:30
habs probiert, dann bringt er mir aber den fehler Inkompatible Typen: 'String' und TStrings'

ich möchte dann später auch dass er nicht nur ein lied abspielt, sondern fortlaufend alle lieder in der liste. wie realisiere ich das denn am besten? kann ich da in ein dynamisches array den pfad reinschreiben und dann im player auslesen?
  Mit Zitat antworten Zitat
Relicted

Registriert seit: 24. Jan 2006
Ort: Iserlohn
646 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Pfad aus ListBox für Bass.dll auslesen

  Alt 8. Dez 2006, 10:46
welche aufrufparameter hat denn play? ich habe gerade den quelltext nicht hier - bin auf der arbeit.

wenn er nen tstrings erwartet dann will er wohl schon ne liste von liedern die er spielen soll.
dann übergibst du einfach die Listbox.Items
  Mit Zitat antworten Zitat
Marcasso

Registriert seit: 16. Sep 2006
39 Beiträge
 
#5

Re: Pfad aus ListBox für Bass.dll auslesen

  Alt 8. Dez 2006, 10:52
also der player will nen string...
  mp.play(filename:string);
  Mit Zitat antworten Zitat
Marcasso

Registriert seit: 16. Sep 2006
39 Beiträge
 
#6

Re: Pfad aus ListBox für Bass.dll auslesen

  Alt 8. Dez 2006, 11:03
also das mit dem abspielen aus der listbox hab ich jetzt hinbekommen
nur müsste es jetzt och so funktionieren, dass ich mehrere nacheinander spielen kann und nicht nur das ausgewählte, ebenso soll ich ja auf nen klick auf nächstes lied und vorheriges leid eben diese lieder spielen können...
werd mir mal ein paar gedanken machen, wenn ihr was wisst wär ich euch auch sehr dankbar!

Delphi-Quellcode:
procedure TForm1.PlayClick(Sender: TObject);
var pfad:string;
begin
  pfad := form2.ListA.Items.Strings[form2.listA.itemindex];
  MP.play(pfad);
  //MP.play('C:\Dokumente und Einstellungen\Peppi\Desktop\Musik\No Signs.mp3');
  bar.Max := MP.length;
end;
  Mit Zitat antworten Zitat
Relicted

Registriert seit: 24. Jan 2006
Ort: Iserlohn
646 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Pfad aus ListBox für Bass.dll auslesen

  Alt 8. Dez 2006, 11:06
ah okay...

ja dann merk dir doch den momentanen itemindex in ner membervariable und spiel dann bei nem klick auf nächstes lied die membervariable mit + 1 ab ... andersrum halt mit -1 und dann hast es fertig )
  Mit Zitat antworten Zitat
Marcasso

Registriert seit: 16. Sep 2006
39 Beiträge
 
#8

Re: Pfad aus ListBox für Bass.dll auslesen

  Alt 8. Dez 2006, 11:08
stimmt, werde ich gleich mal probieren
und wenn ein lid zu ende ist und das nächste abgespielt werden soll werde ich dann auch die variable um 1 hochzählen
  Mit Zitat antworten Zitat
Marcasso

Registriert seit: 16. Sep 2006
39 Beiträge
 
#9

Re: Pfad aus ListBox für Bass.dll auslesen

  Alt 8. Dez 2006, 11:51
also das hat soweit schon ganz gut geklappt, nur wenn ich zum letzten, bzw wieder zum ersten lied springe stürzt er ab...

ich habe eine extra unit procedures in der die procedure MPplay ist:

Delphi-Quellcode:
procedure MPPlay(PlayMp:Boolean);
var pfad :string;
begin
  if form2.ListA.Count <> 0 then
    begin
     pfad := form2.ListA.Items.Strings[form2.listA.itemindex];
     form1.MP.play(pfad);
     form1.bar.Max := form1.MP.length;
     form1.timer1.Enabled := true;
    end;
  end;
der play button
Delphi-Quellcode:
procedure TForm1.PlayClick(Sender: TObject);
var pfad:string;
begin
  procedures.MPPlay(true);
end;
vor
Delphi-Quellcode:
procedure TForm1.vorClick(Sender: TObject);
var pfad:string;
begin
  form2.ListA.ItemIndex:=form2.ListA.ItemIndex+1;
  pfad := form2.ListA.Items.Strings[form2.listA.itemindex+1];
  procedures.MPPlay(true);
end;
und zurück
Delphi-Quellcode:
procedure TForm1.rueckClick(Sender: TObject);
var pfad:string;
begin
  form2.ListA.ItemIndex:=form2.ListA.ItemIndex-1;
  pfad := form2.ListA.Items.Strings[form2.listA.itemindex-1];
  procedures.MPPlay(true);
  bar.Max := MP.length;
end;
  Mit Zitat antworten Zitat
Marcasso

Registriert seit: 16. Sep 2006
39 Beiträge
 
#10

Re: Pfad aus ListBox für Bass.dll auslesen

  Alt 8. Dez 2006, 13:51
vor und zurück habe ich jetz so abgeändert, dass das programm nicht mehr abstürtzt. scheint so auch prima zu funktioneren...

vor
Delphi-Quellcode:
procedure TForm1.vorClick(Sender: TObject);
var pfad:string;
begin
  if (form2.ListA.Count <> 0) and (form2.ListA.ItemIndex <> -1) then
    begin
      if form2.ListA.ItemIndex = form2.ListA.Count -1 then
        form2.ListA.ItemIndex := 0
      else
        if form2.ListA.ItemIndex <> form2.ListA.Count-1 then
          form2.ListA.ItemIndex := form2.ListA.ItemIndex+1;
        form2.ListB.ItemIndex := form2.ListA.ItemIndex;
      end
    else
      if form2.ListA.ItemIndex = -1 then
        begin
          form2.ListA.ItemIndex := 0;
          form2.ListB.ItemIndex := form2.ListA.ItemIndex;
        end;
  procedures.MPPlay(true);
end;
zurück
Delphi-Quellcode:
procedure TForm1.rueckClick(Sender: TObject);
var pfad:string;
begin
  if form2.ListA.Count <> 0 then
    if form2.ListA.ItemIndex = 0 then
      form2.ListA.ItemIndex := form2.ListA.Count -1
    else
      if form2.ListA.ItemIndex <> 0 then
        form2.ListA.ItemIndex := form2.ListA.ItemIndex -1;
    form2.ListB.ItemIndex := form2.ListA.ItemIndex;
   if form2.ListA.ItemIndex = -1 then
   begin
     form2.ListA.ItemIndex:=0;
     form2.ListB.ItemIndex:=form2.ListA.ItemIndex;
   end;
  procedures.MPPlay(true);
end;
  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 19:15 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