Мультимедиа под контролем или Функция mciSendString
05.12.2007 от Иван Ширкоbegin
PrevTrack;
end;
//процедура для таймера, повторяющаяся каждую секунду
procedure TForm1.Timer1Timer(Sender: TObject);
var
cur, i: word;
st: string;
cnt: byte;
hour: word;
min, sec: byte;
t: integer;
begin
//выводим состояние проигрывания
label5.Caption:='Состояние: '+GetStatus;
if (GetStatus <>'playing') and
(GetStatus<>'stopped') and
(GetStatus<>'paused') then exit;
//устанавливаем формат времени в миллисекунды
com:='set cdaudio time format ms wait';
mciSendString(com, @sbReturn, 64, 0);
cur:=GetCurrentTrack;
//выделяем в списке композиций текущую
ListBox1.ItemIndex:=cur-1;
{выводим формат времени, эти строки только для примера, т.к. мы сами недавно установили формат в миллисекунды}
com:='status cdaudio time format wait';
mciSendString(com, @sbReturn, 64, 0);
//выводим информацию информацию
label2.Caption:='Формат времени: '+trim(sbReturn);
label3.Caption:='Начальная позиция: '+GetTrackPos(cur);
label4.Caption:='Текущая позиция: '+GetCDPos;
{устанавливаем ползунок TrackBar'a в нужную позицию, соответствующую текущему положению проигрываемой композиции}
TrackBar1.Max:=strtoint(GetTrackLength(cur)) div 1000;
t:=strtoint(GetCDPos)-strtoint(GetTrackPos(cur));
t:=t div 1000;
TrackBar1.Position:=t;
hour:=t div 3600;
t:=t mod 3600;
min:=t div 60;
t:=t mod 60;
sec:=t;
st:=format('%d:%d',[min,sec]);
if (hour > 0) then
st:=inttostr(hour)+':'+st;
//выводим время проигрывания текущей композиции
label1.Caption:=st;
end;
//при двойном щелчке по композиции из списка начинаем её проигрывание
procedure TForm1.ListBox1DblClick(Sender: TObject);
begin
GoToTrack(ListBox1.ItemIndex+1);
end;
//перемотка композиции на 5 секунд вперёд
procedure TForm1.Button6Click(Sender: TObject);
var
t: integer;
begin
t := strtoint(GetCDPos)+5000;
StopCD;
com := pchar('seek cdaudio to '+inttostr(t)+' wait');
mciSendString(com, @sbReturn, 64, 0);
PlayCD;
end;
//перемотка композиции на 5 секунд назад
procedure TForm1.Button7Click(Sender: TObject);
var
t: integer;
begin
t := strtoint(GetCDPos)-5000;
StopCD;
com := pchar('seek cdaudio to '+inttostr(t)+' wait');
mciSendString(com, @sbReturn, 64, 0);
PlayCD;
end;
Рубрики: Delphi |
02.06.2008 в 15:27
Классно!
13.05.2009 в 13:35
Здравствуйте. Спасибо большое. Пишу только-только взглянув на статью(точнее скопировав себе для дальнейшего ознакомления =) ), но даже на первый взгляд очень информативная и удобочитаемая! (тем более, если Алексей Николаевич Родионов пишет, что “Классно!”, то мне точно понравится))))
Я как раз пишу курсовую работу по обработке звука.Спасибо большое.