Форум по программированию Delphi Sources

 



Вернуться   Форум по программированию Delphi Sources > Все о Delphi > Мультимедиа
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.02.2006, 09:41
Cool Cool вне форума
Прохожий
 
Регистрация: 09.02.2006
Сообщения: 1
Репутация: 10
По умолчанию при воспроизведении мед/плеера перейти

к следующему треку
на форме используются стандартный подход поиска файлов короче
(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  
Старый 09.03.2006, 21:53
NSP NSP вне форума
Прохожий
 
Регистрация: 19.01.2006
Адрес: Moscow
Сообщения: 11
Репутация: 10
По умолчанию мда..

Мда..ну у тебя и стиль программирования...Тебе будет нелегко разобраться в своей же программе на 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;
Далее ловишь конец проигрывания файла(например по CurrentTime=TrackTime),а когда поймал,делаешь так:
Код:
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.
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:41.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2020

ВКонтакте   Facebook   Twitter