Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 2
Всего онлайн: 2
Зарегистрировано юзеров: 5977
Комментариев на сайте: 630
Новый юзер: deenama2



Последние комментарии
c
Theihpled прокомментировал "Урок 62 - Методы, наследование классов, операции с классами Delphi, (часть 4/6)":
Здравствуйте, Савельев Александр. У меня к вм небольшой вопрос по языку https://cloud.mail.ru/public/KFS1/dYUrFbaTU . Cпасибо за уроки.
Theihpled прокомментировал "Урок 54 - Потоки в Delphi, (часть 2/3)":
Кстати да. С потоками тоже ничего не вышло.



Мы в соцсетях
c
Delphi
Урок 43 - Пишем MediaPlayer, часть(3/7)

   В этом уроке мы добавим возможность перематывать файл.

   Файл мы будем перематывать с помощью компонента TScrollBar, добавим его форму:

Внешний вид


   Нам нужно задать ему кое-какие параметры при открытии файла, модифицируем событие на кнопке "Открыть":
procedure TForm1.Button1Click(Sender: TObject);
begin
	if OpenDialog1.Execute = false then exit; // Если файл не выбран то выходим из процедуры
	if Stream <> nil then        // Если поток уже существует то освобождаем его
		BASS_StreamFree(Stream); // чтобы не было наложения звуков
	
	stream:= Bass_streamCreateFile(false, PChar(OpenDialog1.FileName),0,0,0); // Открываем файл
	
	if Stream = nil then  // Если файл не загрузился
		ShowMessage('Ошибка файл не загружен!') // Выводим ошибку
	else
	begin
		Panel1.Caption:=ExtractFileName(OpenDialog1.FileName); // Выводим имя файла
		ScrollBar1.Min:=0; // Устанавливаем минимальную позицию
		ScrollBar1.Max:=Bass_ChannelGetLength(stream,0)-1; // Максимальную
		ScrollBar1.Position:=0; // Обнуляем ScrollBar
	end;
end;
   Далее добавим таймер, в нем мы будем двигать ползунок, показывая сколько уже проиграло. В его обработчике пишем:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
	ScrollBar1.Position:= Bass_ChannelGetPosition(stream,0); // Присваиваем позицию
end;
   Проверим...

Внешний вид


   Все работает. Двигаемся дальше, теперь сделаем перемотку файла, для этого создадим глобальную переменную Track: boolean; и сам обработчик события OnScroll у ScrollBar1:
procedure TForm1.ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode;
  var ScrollPos: Integer);
begin
  if  ScrollCode = scEndScroll  then  // Как только мы отпусти кнопку мышки то ...
  begin
	Bass_ChannelSetPosition(stream, ScrollBar1.Position, 0);  // Задаем позицию потоку
	Track:=false;  // Отпустили ScrollBar
  end
  else
	Track:=true; // ScrollBar занят
end;
   Переменная Track будет служить выключателем присваивания позиции ScrollBar'у, что бы мы могли передвинуть ползунок, а так он бы все время возвращался на прежнее место. Изменим обработчик события таймера:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
	if Track=false then // Если ползунок свободен то ...
		ScrollBar1.Position:= Bass_ChannelGetPosition(stream,0); // Присваиваем позицию
end;
   Все работает!

   Мы не будем вдаваться в подробности функций библиотеки, ведь мы пишем простой проигрыватель. Если вы собираетесь написать какой-нибудь супер плеер, то вы наверное сами разберётесь в них и все поймете.

   В следующем уроке мы добавим плей-лист.

Удачи!
Встретимся в следующем уроке!


Источник: www.thedelphi.ru
Автор: Савельев Александр
Опубликовано: 24 Мая 2013
Просмотров: 6625

Урок 42 - Пишем MediaPlayer, часть(2/7) Урок 44 - Пишем MediaPlayer, часть (4/7)

Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.