AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi BassDllPlayer Proplem mit trackbar
Thema durchsuchen
Ansicht
Themen-Optionen

BassDllPlayer Proplem mit trackbar

Ein Thema von Anarchon · begonnen am 15. Jun 2006 · letzter Beitrag vom 29. Jun 2006
Antwort Antwort
Anarchon

Registriert seit: 10. Jun 2006
6 Beiträge
 
Delphi 7 Enterprise
 
#1

BassDllPlayer Proplem mit trackbar

  Alt 15. Jun 2006, 04:31
hi,
Programmiere grad einen Mp3player mit einer Selbstlaufenenden trackbar!
(zum anzeigen der aktuellen Zeit des Songs)
problem ist sobald sich die Postion der Bar ändert stoppt der song!
(Also Song - Pause - Song - Pause - Song usw...
Hier der Code
Delphi-Quellcode:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,bass, Buttons, ExtCtrls, BassdllPlayer, ComCtrls, Menus
  ;

type
  TForm2 = class(TForm)
    SpeedButton1: TSpeedButton;
    pause: TSpeedButton;
    playbt: TSpeedButton;
    od: TOpenDialog;
    SpeedButton2: TSpeedButton;
    Image1: TImage;
    BassdllPlayer1: TBassdllPlayer;
    ListBox1: TListBox;
    Label1: TLabel;
    TrackBar1: TTrackBar;
    Timer1: TTimer;
    PopupMenu1: TPopupMenu;
    procedure FormCreate(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure playbtClick(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure pauseClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure poschange(Sender: TObject);
  private

  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}


procedure TForm2.FormCreate(Sender: TObject);
begin

   // check the correct BASS was loaded
   if (HIWORD(BASS_GetVersion) <> BASSVERSION) then
   begin
      MessageBox(0,'An incorrect version of BASS.DLL was loaded',0,MB_ICONERROR);
      Halt;
   end;

   // Initialize audio - default device, 44100hz, stereo, 16 bits
   if not BASS_Init(-1, 44100, 0, Handle, nil) then
  begin

  End;
form2.Visible:=true;
end;

procedure TForm2.SpeedButton2Click(Sender: TObject);
begin
od.Execute;
listbox1.Items.Add(od.FileName);
end;


procedure TForm2.playbtClick(Sender: TObject);
begin
if (listbox1.ItemIndex > -1) then
bassdllplayer1.LoadFromFile(ListBox1.Items.Strings[Listbox1.ItemIndex]);
bassdllplayer1.Play;
label1.Caption:=bassdllplayer1.GetSongLengthAsString;
trackbar1.Max:=bassdllplayer1.SongLength;
end;

procedure TForm2.SpeedButton1Click(Sender: TObject);
begin
bassdllplayer1.Stop;
timer1.Destroy;
bassdllplayer1.Destroy;
end;


procedure TForm2.pauseClick(Sender: TObject);
begin
bassdllplayer1.Pause;
end;

procedure TForm2.Timer1Timer(Sender: TObject);
begin
//trackbar1.Position:=bassdllplayer1.Position;


end;

procedure TForm2.poschange(Sender: TObject);
begin
bassdllplayer1.Position:=trackbar1.Position;

end;
end.
  Mit Zitat antworten Zitat
donpeppone

Registriert seit: 18. Jan 2006
Ort: Hamm
4 Beiträge
 
#2

Re: BassDllPlayer Proplem mit trackbar

  Alt 29. Jun 2006, 11:37
HiHo!

Also so wie du den Code jetzt hast mit der Kommentierung funzt das. Aber sobald du die Timer-Funktion nutzt,
dann geht da nix mehr, gelle?!
Problem ist, dass der Timer die Position ändert, und die OnChange-Funktion von der Trackbar dann aufgerufen wird.
Also eine Kette de la Reaktion.
Abhilfe kannst du dir dadurch schaffen, dass du den ActionListener vorher entfernst und danach wieder zuweist.

Sprich:
Delphi-Quellcode:
procedure TForm2.Timer1Timer(Sender: TObject);
begin
 trackbar1.OnChange := Nil; // Aktionszuweisung entfernen
 trackbar1.Position := bassdllplayer1.Position;
 trackbar1.OnChange := poschange; // und wieder verknüpfen
end;
Hoffe et klappt.. elegant ist zwar was anderes...

vg dp
  Mit Zitat antworten Zitat
Anarchon

Registriert seit: 10. Jun 2006
6 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: BassDllPlayer Proplem mit trackbar

  Alt 29. Jun 2006, 12:46
hey Danke ,ja es klappt ^^
  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 04:11 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