|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
при воспроизведении мед/плеера перейти
к следующему треку
на форме используются стандартный подход поиска файлов короче (Filelistbox; filterComboBox; DirectoryListBox; DriveComboBox от этих компонентов точнее от "Filelistbox" компонент "Mediaplayer" проигрывает файл. Вопрос как можно сделать (как реализовать) чтобы файлы находящиеся в "Filelistbox" воспрроизводились "Mediaplayer" пока они там присутствуют? Надеюсь вы мне сможете помочь. для этого я тут скину кодинг камуто обязательно понадобится ////////////////////////////////////////////////////////////// // Igor valyev by 2006 year // // // // 'player Igor' // //////////////////////////////////////////////////////////// unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, MPlayer, FileCtrl, StdCtrls, ComCtrls, ExtCtrls, Gauges, Buttons, jpeg, MMSystem; type TForm1 = class(TForm) FileListBox1: TFileListBox; DirectoryListBox1: TDirectoryListBox; DriveComboBox1: TDriveComboBox; FilterComboBox1: TFilterComboBox; MediaPlayer1: TMediaPlayer; Gauge1: TGauge; BitBtn1: TBitBtn; Image2: TImage; TrackBar1: TTrackBar; TrackBar2: TTrackBar; Label1: TLabel; Label2: TLabel; Label3: TLabel; Gauge2: TGauge; Timer1: TTimer; Timer2: TTimer; CheckBox2: TCheckBox; Panel1: TPanel; Image1: TImage; Panel2: TPanel; Timer3: TTimer; Image3: TImage; MediaPlayer2: TMediaPlayer; Timer4: TTimer; Label4: TLabel; TimerLabel: TTimer; Label5: TLabel; procedure FileListBox1DblClick(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure TrackBar1Change(Sender: TObject); procedure TrackBar2Change(Sender: TObject); procedure Timer2Timer(Sender: TObject); procedure CheckBox2Click(Sender: TObject); procedure Label1Click(Sender: TObject); procedure Label2Click(Sender: TObject); procedure Timer3Timer(Sender: TObject); procedure Image3Click(Sender: TObject); procedure Timer5Timer(Sender: TObject); procedure Timer4Timer(Sender: TObject); procedure MediaPlayer1Click(Sender: TObject; Button: TMPBtnType; var DoDefault: Boolean); procedure TimerLabelTimer(Sender: TObject); private { Private declarations } public { Public declarations } end; var SetParm: TMCI_Set_Parms; SeekParm: TMCI_Seek_Parms; TempFlags: Longint; Start_From : Longint; s: dword; a,b: word; h: hWnd; Form1: TForm1; LeftVolume: Word; RightVolume: Word; implementation {$R *.dfm} //prisvoenie file by directory list box procedure TForm1.FileListBox1DblClick(Sender: TObject); begin with MediaPlayer1 do begin FileName:=FileListBox1.FileName; Label5.Caption := fileListBox1.FileName; Open; mediaplayer1.Pause; mediaplayer1.Stop; mediaplayer1.Previous; mediaplayer1.Back; mediaplayer1.Next; Play; mediaplayer1.Eject; end; end; //first gauge1 procedure TForm1.Timer1Timer(Sender: TObject); begin with MediaPlayer1 do if FileName<>'' then Gauge1.Progress:=Round(100*Position/Length); end; //close all procedure TForm1.BitBtn1Click(Sender: TObject); begin close; end; //regulator LEFT procedure TForm1.TrackBar1Change(Sender: TObject); begin a:=trackbar1.position; b:=trackbar2.position; s:=(a shl 16) or b; waveOutSetVolume(h,s); end; //regulator RIGHT procedure TForm1.TrackBar2Change(Sender: TObject); begin a:=trackbar1.position; b:=trackbar2.position; s:=(a shl 16) or b; waveOutSetVolume(h,s); end; //vtoroy gauge2 koroche status procedure TForm1.Timer2Timer(Sender: TObject); begin with MediaPlayer1 do if FileName<>'' then Gauge2.Progress:=Round(100*Position/Length); end; //procedure of display procedure TForm1.CheckBox2Click(Sender: TObject); begin with MediaPlayer1 do begin if FileName='' then Exit; Start_From:=Position; Close; Panel1.Refresh; if CheckBox2.Checked then Display:=Panel1 else Display:=NIL; Open; Position:=Start_From; Play; end; end; //LABEL click procedure TForm1.Label1Click(Sender: TObject); begin beep; end; //LABEL click procedure TForm1.Label2Click(Sender: TObject); begin beep; end; //chtob panel view FALSE procedure TForm1.Timer3Timer(Sender: TObject); begin panel2.Visible := false; end; //chtob izchez Image3 panel view FALSE procedure TForm1.Image3Click(Sender: TObject); begin Image3.Visible := false; panel2.Visible :=false; end; //zastavka MEDIAPLAYER 2 procedure TForm1.Timer5Timer(Sender: TObject); begin mediaplayer2.Stop; mediaplayer2.Close; end; //zapusk zastavka sound procedure TForm1.Timer4Timer(Sender: TObject); begin mediaplayer2.play; timer4.Destroy; end; procedure TForm1.MediaPlayer1Click(Sender: TObject; Button: TMPBtnType; var DoDefault: Boolean); begin with mediaplayer1 do mediaplayer1.next; begin mediaplayer1.FileName := filelistbox1.FileName ; mediaplayer1.Open; mediaplayer1.Play; end; end; procedure TForm1.TimerLabelTimer(Sender: TObject); begin randomize; label4.Color := random (form1.Color); end; end. |
#2
|
|||
|
|||
мда..
Мда..ну у тебя и стиль программирования...Тебе будет нелегко разобраться в своей же программе на 1000+ строк...
Ну так вот,должно работать,не проверял: Код:
SelIndx: Integer; FileName: String; Count: Integer; При нажатии на кнопку плей: Код:
var I: Integer; begin ...//твой код FileName:= MediaPlayer.FileName; Count:= FileListBox1.Items.Count; for I:=0 to Count-1 do if FileListBox1.Items.Strings[i] = FileName then SelIndx:= I; Код:
if ((SelIndx+1) < Count) then FileListbox1.Selected[SelIndx+1]:= True; MediaPlayer.FileName:= FileListBox1.Items.Strings[SelIndx+1]; P.S. Это называется не кодинг а листинг Последний раз редактировалось NSP, 09.03.2006 в 21:56. |