на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Универсальный проигрыватель WinMedia
p align="left">end;

procedure TMainForm.FormDestroy(Sender: TObject);

begin

PlayList.Free;

end;

procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);

begin

IncPlayList := False;

WaveOut.Close;

Приложение А (продолжение)

SaveSettings;

end;

procedure TMainForm.FormShow(Sender: TObject);

begin

if (ParamStr(1) <> '') then

if LoadFile(ParamStr(1)) then

begin

btnPlayClick(nil);

end

else MessageDlg(ParamStr(1)+' is not a valid Audiofile',mtError, [mbOK],0);

end;

procedure TMainForm.WMDropFiles(var Msg: TMessage);

var

i,cnt: integer;

Buf: array[0..255]of Char;

begin

try

cnt := DragQueryFile(Msg.wParam,$FFFFFFFF,@Buf,255);

if (cnt > 0) then

begin

IncPlayList := False;

WaveOut.Stop;

PlayList.Clear;

for i := 0 to cnt-1 do

begin

DragQueryFile(Msg.wParam,i,@Buf,255);

if not AddFile(StrPas(Buf)) then

MessageDlg(StrPas(Buf)+' is not a valid Audiofile',mtError, [mbOK],0);

end;

PlayIndex := 0;

SelectFile(0);

if (PlayList.Count > 0) then btnPlayClick(nil);

end;

finally

DragFinish(Msg.wParam);

end;

end;

{-- TMainForm -----------------------------------------------------------}

procedure TMainForm.DrawTime(Time: Longint);

Var

Hour, Min, Sec, MSec: Word;

begin

{ Display the "Time" }

TimeDecode(Time, Hour, Min, Sec, MSec);

if (oSec <> Sec) then

begin

ss1.Value := Sec;

oSec := Sec;

end;

if (oMin <> Min) then

begin

mm1.Value := Min;

oMin := Min;

end;

end;

{-- TMainForm -----------------------------------------------------------}

procedure TMainForm.SetFileParams;

begin

Приложение А (продолжение)

if not MpegFile.Empty then

with MpegFile do

begin

ss1.Enabled := True;

ss2.Enabled := True;

mm1.Enabled := True;

mm2.Enabled := True;

digit.Enabled:= True;

lblFile.Caption := IntToStr(PlayIndex+1)+':'+UpperCase(ExtractFileName(Filename));

ledRate.Value := PlaybackRate div 1000;

ledRate.Enabled := True;

lblLayer.Visible := True;

lblLayer2.Visible := True;

case Layer of

1: lblLayer2.Caption := 'I';

2: lblLayer2.Caption := 'II';

3: lblLayer2.Caption := 'III';

end;

if (Mode = smJointStereo) or (Mode = smStereo) then

ledMode.Mode := mStereo

else

ledMode.Mode := mMono;

ledMode.Enabled := True;

ledBitRate.Value := BitRate;

ledBitRate.Enabled := True;

lblBitRate.Caption := 'KBit/s';

end

else if not WaveFile.Wave.Empty then

with WaveFile.Wave do

begin

ss1.Enabled := True;

ss2.Enabled := True;

mm1.Enabled := True;

mm2.Enabled := True;

digit.Enabled:= True;

lblFile.Caption := IntToStr(PlayIndex+1)+':'+UpperCase(ExtractFileName(Filename));

ledRate.Value := SampleRate div 1000;

ledRate.Enabled := True;

lblLayer.Visible := False;

lblLayer2.Visible := False;

ledMode.Mode := Mode;

ledMode.Enabled := True;

ledBitRate.Value := BitLength;

ledBitRate.Enabled := True;

lblBitRate.Caption := 'Bit';

end

else

begin

ss1.Enabled := False;

ss2.Enabled := False;

mm1.Enabled := False;

mm2.Enabled := False;

digit.Enabled:= False;

lblFile.Caption := 'Нет Файла';

ledRate.Enabled := False;

lblLayer.Visible := False;

lblLayer2.Visible := False;

ledMode.Enabled := False;

ledBitRate.Enabled:= False;

end;

Приложение А (продолжение)

end;

{-- TMainForm -----------------------------------------------------------}

procedure TMainForm.HiTimerTimer(Sender: TObject);

var

Time: Longint;

begin

MMConnector1.Trigger;

inc(TimeCnt);

if (TimeCnt mod 5 = 0) and (wosPlay in Waveout.State) and not Seeking then

begin

Time := WaveOut.Position;

inc(CurTime,Time-OldTime);

DrawTime(CurTime);

OldTime := Time;

if not MpegFile.Empty then

begin

Gauge.Value := MulDiv(MpegFile.Position, 100, MpegFile.Frames);

ImageEOF.Visible := MpegFile.Position >= MpegFile.Frames;

end

else

begin

Gauge.Value := MulDiv(WaveFile.Wave.Position, 100, WaveFile.Wave.DataSize);

ImageEOF.Visible := WaveFile.Wave.Position >= WaveFile.Wave.DataSize;

end;

end;

end;

{-- TMainForm -----------------------------------------------------------}

procedure TMainForm.WaveOutStart(Sender: TObject);

begin

TimeCnt := 0;

HiTimer.Enabled := True;

LoadImage(ImageState,'BM_PLAY');

ImageState.Visible := True;

end;

{-- TMainForm -----------------------------------------------------------}

procedure TMainForm.WaveOutStop(Sender: TObject);

begin

HiTimer.Enabled := False;

WaveOut.Close;

Seeking := False;

DrawTime(0);

Gauge.Value := 0;

ImageEOF.Visible := False;

ImageState.Visible := False;

if IncPlayList then

begin

if (PlayIndex < PlayList.Count-1) then

begin

inc(PlayIndex);

SelectFile(PlayIndex);

WaveOut.Start;

end

else

begin

PlayIndex := 0;

SelectFile(PlayIndex);

end;

end;

end;

{-- TMainForm -----------------------------------------------------------}

procedure TMainForm.WaveOutPause(Sender: TObject);

Приложение А (продолжение)

begin

LoadImage(ImageState,'BM_PAUSE');

end;

{-- TMainForm -----------------------------------------------------------}

procedure TMainForm.WaveOutRestart(Sender: TObject);

begin

LoadImage(ImageState,'BM_PLAY');

end;

{-- TMainForm -----------------------------------------------------------}

function TMainForm.LoadFile(FileName: TFileName): Boolean;

begin

Result := False;

if (FileName <> '') and FileExists(FileName) then

begin

PlayIndex := 0;

PlayList.Clear;

MpegFile.FileName := '';

WaveFile.Wave.FileName := '';

if IsMpegFile(FileName) or wioIsWaveFile(FileName, RIFF_FILE) then

begin

PlayListName := 'noname.m3u';

PlayList.Add(FileName);

end

else

begin

PlayListName := FileName;

LoadPlayList(FileName,PlayList);

end;

Result := (PlayList.Count > 0);

SelectFile(0);

end;

caption := filename;

end;

{-- TMainForm -----------------------------------------------------------}

function TMainForm.AddFile(FileName: TFileName): Boolean;

begin

Result := False;

if (FileName <> '') and FileExists(FileName) then

begin

if IsMpegFile(FileName) or wioIsWaveFile(FileName, RIFF_FILE) then

begin

PlayList.Add(FileName);

Result := True;

end

else

begin

Result := LoadPlayList(FileName,PlayList);

end;

end;

end;

{-- TMainForm -----------------------------------------------------------}

procedure TMainForm.SelectFile(index: integer);

var

FileName: TFileName;

begin

MpegFile.FileName := '';

WaveFile.Wave.FileName := '';

if (index >= 0) and (index < PlayList.Count) then

begin

FileName := PlayList[index];

Приложение А (продолжение)

if (FileName <> '') and FileExists(FileName) then

begin

if IsMpegFile(FileName) then

begin

MpegFile.FileName := FileName;

WaveOut.Input := MpegFile;

end

else if wioIsWaveFile(FileName, RIFF_FILE) then

begin

WaveFile.Wave.FileName := FileName;

WaveOut.Input := WaveFile;

end

end;

CurTime := 0;

OldTime := 0;

end;

SetFileParams;

end;

{-- TMainForm -----------------------------------------------------------}

procedure TMainForm.PopupMenuPopup(Sender: TObject);

begin

{ adjust menu entrys }

PopupMenu.Items[6].Enabled := PlayList.Count > 1;

PopupMenu.Items[7].Enabled := PlayList.Count > 1;

if (wosPlay in WaveOut.State) then

begin

PopupMenu.Items[0].Enabled := False;

PopupMenu.Items[2].Caption := '&Рестарт';

PopupMenu.Items[3].Enabled := True;

PopupMenu.Items[4].Enabled := True;

end

else

begin

PopupMenu.Items[0].Enabled := True;

PopupMenu.Items[2].Caption := '&Воспроизвести';

PopupMenu.Items[3].Enabled := False;

PopupMenu.Items[4].Enabled := False;

end;

if (wosPause in WaveOut.State) then

PopupMenu.Items[3].Caption := '&Пауза'

else

PopupMenu.Items[3].Caption := '&Пауза';

end;

{-- TMainForm -----------------------------------------------------------}

procedure TMainForm.PreferencesClick(Sender: TObject);

begin

with TPreferencesForm.Create(Self) do

try

ShowModal;

finally

Free;

end;

end;

{-- TMainForm -----------------------------------------------------------}

procedure TMainForm.btnOpenClick(Sender: TObject);

var

Idx: WORD;

begin

if (OpenDialog.Execute) and (opendialog.FileName = '*.avi') then

begin

Video.Show;

Video.Visible:=true;

mainform.Visible:=false;

if video.AVIOpenDialog.Execute then

Страницы: 1, 2, 3, 4, 5, 6, 7, 8



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.