Мультимедиа под контролем или Функция mciSendString | Программирование на Delphi и не только

Реклама на сайте

Получить разрешения на работу в Москве. Разрешение на работу по отличной цене.
gta4 патч

Почитайте!

Нас читают

Статьи о программировании и не только

Mail.Ru

Rambler's Top100

Programming Blogs - BlogCatalog Blog Directory

Мультимедиа под контролем или Функция mciSendString

05.12.2007 от Иван Ширко

Страница: 1 2 3 4 5 6

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;

Страница: 1 2 3 4 5 6

Рубрики: Delphi |

Комментарии (2)

  1. Алексей Родионов пишет:

    Классно!

  2. Коньтяков Глеб пишет:

    Здравствуйте. Спасибо большое. Пишу только-только взглянув на статью(точнее скопировав себе для дальнейшего ознакомления =) ), но даже на первый взгляд очень информативная и удобочитаемая! (тем более, если Алексей Николаевич Родионов пишет, что “Классно!”, то мне точно понравится))))
    Я как раз пишу курсовую работу по обработке звука.Спасибо большое.

Оставить комментарий

Заметьте: Включена проверка комментариев. Нет смысла повторно отправлять комментарий.