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

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 8
Всего онлайн: 8
Зарегистрировано юзеров: 7940
Комментариев на сайте: 698
Новый юзер: kotya.volkova



Последние комментарии
c
Dennisvoifs прокомментировал "Урок 3 - Конструкция IF...THEN...ELSE":
Пункт коммерческого учета цена, Ктп комплектные трансформаторные подстанции москва, Производство ктп москва и не только Вы найдете на нашем специализированном сайте: - Вам к нам!https://sviloguzov.ru/
Arthurneime прокомментировал "Урок 53 - Потоки в Delphi, (часть 1/3)":
[img]https://masterfutures.ru/wp-content/uploads/2020/03/14-2.png[/img] Online trading is becoming increasingly popular, as more people learn of the earning potential of platforms such as Broker, a broker which caters to a significant audience of digital traders (12 million and counting). Known for their excellent user interface, as well as fast deposit and withdrawal times, Broker provides multiple features to help traders earn on the markets. This overview will outline just some of the key aspects traders can expect to enjoy whilst working with Broker broker. Online trading is becoming increasingly popular, as more people learn of the earning potential of platforms such as Broker, a broker which caters to a significant audience of digital traders (12 million and counting). Known for their excellent user interface, as well as fast deposit and withdrawal times, Broker provides multiple features to help traders earn on the markets. This overview will outline just some of the key aspects traders can expect to enjoy whilst working with Broker broker. Broker Broker is operated by a dedicated team, whose main priority has always been to provide the best possible user experience, and ultimately satisfaction. Whether experienced in trading or a newcomer, the platform is easy to use and very responsive. The education section deserves special mention, particularly for assisting traders to learn and implement new strategies – which can be tested on the platforms free demo Source: [url=https://bit.ly/35fv3B6/]Broker[/url] https://bit.ly/35fv3B6/ Tags: Broker

Урок 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
Просмотров: 8668

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

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