Здравствуйте!
Исчерпал все свои возможности в вариантах написания кода и в поисках ответа в интернете.
Пробую заместо стандартного компонента проигрывателя (из вкладки System) использовать компонент ActiveX, Windows Media Player.
Натолкнулся на проблему: при проигрывании файла (MP3 или WMV) совсем не движется бегунок трекбара. Устал мудрить с таймером и с прочим. Ищу у вас совета. Дело в том, что в стандартном компоненте проигрывателя - там всё было понятно, а в ActiveX код совсем другой, методом тыканья найти результат не получается.
Вот код (один из многих вариантов):
| Код | unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ExtCtrls, StdCtrls, Menus, OleCtrls, OleServer, WMPLib_TLB, Gauges;
type TForm1 = class(TForm) ListBox1: TListBox; Panel1: TPanel; MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; N5: TMenuItem; N6: TMenuItem; N7: TMenuItem; N8: TMenuItem; N9: TMenuItem; N10: TMenuItem; N11: TMenuItem; N12: TMenuItem; OpenDialog1: TOpenDialog; MediaPlayer1: TWindowsMediaPlayer; Timer1: TTimer; TrackBar1: TTrackBar; procedure N2Click(Sender: TObject); procedure N6Click(Sender: TObject); procedure N7Click(Sender: TObject); procedure N8Click(Sender: TObject); procedure ListBox1Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure N4Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure TrackBar1Change(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1; I: Integer;
implementation
{$R *.dfm}
procedure TForm1.N2Click(Sender: TObject); begin if OpenDialog1.Execute then MediaPlayer1.URL:= OpenDialog1.FileName; for i:= 0 to OpenDialog1.Files.Count -1 do ListBox1.Items.Strings[ListBox1.ItemIndex]:= OpenDialog1.Files[i]; MediaPlayer1.controls.stop; end;
procedure TForm1.N6Click(Sender: TObject); begin MediaPlayer1.controls.play; end;
procedure TForm1.N7Click(Sender: TObject); begin MediaPlayer1.controls.pause; end;
procedure TForm1.N8Click(Sender: TObject); begin MediaPlayer1.controls.stop; end;
procedure TForm1.ListBox1Click(Sender: TObject); begin MediaPlayer1.URL:= ListBox1.Items.Strings[ListBox1.ItemIndex]; MediaPlayer1.controls.stop; end;
procedure TForm1.N3Click(Sender: TObject); begin ListBox1.DeleteSelected; end;
procedure TForm1.N4Click(Sender: TObject); begin ListBox1.Clear; end;
procedure TForm1.Timer1Timer(Sender: TObject); begin if MediaPlayer1.URL <> '' then TrackBar1.Position:= MediaPlayer1.controls.currentMarker; end;
procedure TForm1.TrackBar1Change(Sender: TObject); begin MediaPlayer1.controls.currentPosition:= TrackBar1.Position; end;
end.
|
|