Урок 42 - Пишем MediaPlayer, часть(2/7)
В этом уроке мы поработаем над интерфейсом, добавим кнопки "Стоп", "Пауза" и т.д.
Первое что мы добавим, это возможность выбора воспроизводимого файла, для этого вытащим на форму из предыдущего урока компонент TOpenDialog и
дополним обработчик события OnClick у кнопки "Открыть":
procedure TForm1.Button1Click(Sender: TObject); begin if OpenDialog1.Execute = false then exit; // Если файл не выбран то выходим из процедуры if Stream <> 0 then // Если поток уже существует то освобождаем его BASS_StreamFree(Stream); // чтобы не было наложения звуков stream:= Bass_streamCreateFile(false, PChar(OpenDialog1.FileName),0,0,0); // Открываем файл if Stream = 0 then // Если файл не загрузился ShowMessage('Ошибка файл не загружен!'); // Выводим ошибку end;Диалог сделали, теперь кнопочки. Вытаскиваем 2 кнопки и называем их: "Пауза", "Стоп", соответственно. Разместим их как на рисунке:
В OnClick на первой кнопке пишем код:
procedure TForm1.Button3Click(Sender: TObject); begin BASS_ChannelPause(stream); // Ставим на паузуИ сразу напишем во второй:
procedure TForm1.Button4Click(Sender: TObject); begin BASS_ChannelStop(stream); // Останавливаем воспроизведение BASS_CHANNELsetPosition(stream,0,0); // Возвращаем текущую позицию в началоМожно проверять, все должно работать как часы. Все готово, но не хватает немного информации о том, что играет, ограничимся выводом названия файла. Вытаскиваем Panel:
И допишем обработчик события OnClick на кнопке "Открыть":
procedure TForm1.Button1Click(Sender: TObject); begin ... if Stream = 0 then // Если файл не загрузился ShowMessage('Ошибка файл не загружен!') // Выводим ошибку else Panel1.Caption:= ExtractFileName(OpenDialog1.FileName); // Выводим имя файла end;Вот что получилось, можете смело экспериментировать :)
Удачи!
Встретимся в следующем уроке!
Добавил(а): Mikhail | Дата: 2013-06-02 | |
if Stream <> nil then выдает ошибку
|
Добавил(а): Mikhail | Дата: 2013-06-02 | |
[Error] Unit1.pas(51)
[Error] Unit1.pas(54)
что не правильно сделано ???
|
Добавил(а): Admin | Дата: 2013-06-02 | |
Прошу прощения, не проверил в Delphi
"if Stream <> nil then"
исправь на
"if Stream = 0 then"
|
Добавил(а): Gerfegest | Дата: 2014-12-04 | |
Писал на Delphi XE6, постоянно выскакивала ошибка загрузки файла,
проблема решилась после добавления в Stream BASS_UNICODE.
Stream:= Bass_streamCreateFile(false, PChar(OpenDialog1.FileName),0,0,0 or BASS_UNICODE);
|
Добавил(а): olegyt | Дата: 2015-08-02 | |
|
Добавил(а): olegyt | Дата: 2015-08-02 | |
|
Добавил(а): olegyt | Дата: 2015-08-02 | |
No results found.