![]() |
Probleme mit Trackbar/Timer bei MP3 Player
Hallo liebe Programmierfreunde :)
Ich beschäftige mich seit einigen Tagen mit Delphi und bastel an einem MP3 Player rum. Seit ich mich an die Trackbar gewagt habe und mit OpenDialog rumexperimentiert habe klappt nichtsmehr so richtig :\ Ich kann mit dem Button "Hinzufügen" zwar MP3s laden und abspielen, aber der "Stop" Button klappt nichtmehr. Auch mein Timer für die Trackbar habe ich ausgeschaltet, weil die Trackbar beim Starten ans Ende springt und ich ein Fehlermeldung (irgendwas mit MCI-Gerät) erhalte. Also hier der Quellcode (nicht lachen plz, bin erst seit 2 tagen dran :D):
Code:
unit mp3;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, MPlayer, ExtCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; TrackBar1: TTrackBar; MediaPlayer1: TMediaPlayer; Timer1: TTimer; ListBox1: TListBox; Button5: TButton; OpenDialog1: TOpenDialog; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Button5Click(Sender: TObject); procedure TrackBar1Change(Sender: TObject); private public var running:boolean; end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin if Button1.Caption='Play' then if running=true then begin Mediaplayer1.Resume; Button1.caption:='Pause'; end else begin Mediaplayer1.Open; Mediaplayer1.Play; Button1.caption:='Pause'; running:=true; end else begin Mediaplayer1.Pause; Button1.caption:='Play'; end; end; procedure TForm1.Button2Click(Sender: TObject); begin Mediaplayer1.stop; end; procedure TForm1.Button5Click(Sender: TObject); begin Opendialog1.execute; Mediaplayer1.Filename:=Opendialog1.FileName; Mediaplayer1.Open; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Trackbar1.Position:=Mediaplayer1.Position; end; procedure TForm1.TrackBar1Change(Sender: TObject); begin Trackbar1.Max:=Mediaplayer1.TrackLength[0]; end; end. mfg phAb EDIT: Naja, wie gesagt, der Timer spinnt, also klappt auch die Trackbar nich :) Naja und mein Stop-Button (Button2) klappt aufeinmal nicht mehr :( |
Re: Blutiger MP3-Player Anfänger
Hi,
und herzlich willkommen in der :dp: und was genau möchtest du jetzt wissen? gruß angos |
Re: Blutiger MP3-Player Anfänger
Hallo phAb :dp: Herzlich Willkommen in der DP
könntest du dem Beitrag bitte einen aussagekräftigen Titel geben der dein Problem ansatzweise beschreibt? Klicke dazu einfach über dem Beitrag auf http://www.delphipraxis.net/template.../icon_edit.gif |
Re: Probleme mit Trackbar/Timer bei MP3 Player
Hallo phAb,
guck doch mal in der Hilfe, wann das OnChange Ereignis eines TTrackbar aufgerufen wird. Ich rate jetzt mal, daß da der Hund begraben liegt. Auf welches Zeitintervall hast du denn den Timer eingestellt? |
Re: Probleme mit Trackbar/Timer bei MP3 Player
Hi,
Du musst es so machen:
Delphi-Quellcode:
, da sonst bei der Zuweisung der Position das Trackbar OnChange aufgerufen wird, was das chaos anrichtet ;)
procedure TForm1.Timer1Timer(Sender: TObject);
begin TrackBar1.OnChange := nil; Trackbar1.Position := Mediaplayer1.Position; TrackBar1.OnChange := Trackbar1.Change; end; Gruß Neutral General |
Re: Probleme mit Trackbar/Timer bei MP3 Player
danke für die flotte hilfe neutral general :)
meine trackbar läuft soweit, und meine listbox nimmt sogar mehrere items auf :D aber schon häng ich wieder fest: ich versuche grade makierte Items abzuspielen. naja, mein erster einfall war den quellcode von meinem playbutton zu ändern.
Code:
Problem is das es nich klaptt^^ Also es wird immernoch das lied abgespielt was per opendialog ausgewählt wurden.
procedure TForm1.Button1Click(Sender: TObject);
var pos:integer; begin if Button1.Caption='Play' then if running=true then begin Mediaplayer1.Resume; Button1.caption:='Pause'; end else begin pos:=Listbox1.ItemIndex; Mediaplayer1.FileName:=Listbox1.Items[pos]; Mediaplayer1.Open; Mediaplayer1.Play; Button1.caption:='Pause'; running:=true; end else begin Mediaplayer1.Pause; Button1.caption:='Play'; end; end; Ich weiß ich bin ziemlich unkreativ und was besseres fällt mir nich ein. Hab auch in der Hilfe über Listbox.Items nachgelesen, hat mir aber nich wirklich geholfen :( mfg pHAB |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz