На панели компонентов есть целая вкладка "Мультимедиа", на которой находятся все инструменты для проигрывания звука в программе. Есть простые компоненты типа MediaPlayer или PlaySound, которые не позволяют гибко управлять звуком. Есть и профессиональные инструменты BASS, которые представлены множеством компонентов.
Здесь мы рассмотрим только несложные компоненты, потому что если рассматривать BASS, то пост получится ну очень большой, и вы, скорее всего, просто устанете.
Начнём работу со звуком с рассмотрения второго компонента на вкладке "Мультимедиа" - PlaySound. Он может только запустить звук WAV на проигрывание. Другие форматы компонент не понимает, других функций для звука тоже нет. Этот компонент хорош, если нужно просто издать какой-либо звук в программе, не более.
Здесь звук задан в параметре компонента FileName. Обратите внимание, что для указания имени используются двойные слеши, потому что одинарные в сочетании с некоторыми символами являются служебными и интерпретируются не так, как вы ожидаете. А двойные слеши всегда интерпретируются как разделители в путях.
Также следует обратить внимание на параметр PlayType. Это - максимально возможное управление звуком. Например, можно зациклить проигрывание или сделать программу недоступной, пока звук проигрывается.
Ну а в параметр Sound можно загрузить звук, тогда имя файла будет не нужно, ведь такой звук будет сохраняться в самой программе и проигрываться из неё.
Теперь рассмотрим более сложный компонент - MediaPlayer (самый первый на вкладке "Мультимедиа"), в котором уже можно задавать позицию проигрывания, останваливать и приостанавливать проигрывание. Но этот компонент не позволяет сохранить в программе звук, а может проигрывать только из файла. Зато поддерживаются целых три формата звуковых файлов и даже видеоформат AVI!
Вам остаётся лишь проиписать имя файла в параметре FileName или подать его на точку данных FileName. А дальше - нажимать кнопки управления.
Когда дело доходит до установки позиции, то хочется, чтобы было так, как в стндартных проигрывателях: был ползунок, с помощью которого можно установить позицию. И для этого вам придётся познакомиться с новыми компонентами.
Во-первых, ползунок. Для примера взят тот, который находится в групее "Графические" на вкладке "Интерфейс". Если вы не можете его найти, то скопируйте код в hiasm (он будет немного ниже).
Ещё нам понадобится таймер, потому что у компонента MediaPlayer нет события, происходящего при изменении позиции проигрывания. У него есть только нижняя точка Position, с которой нужно регулярно снимать данные.
Таймер находится на вкладке "Контролы".
Ну и, конечно, нам понадобятся компоненты-инструменты (вкладка "Инструменты"). Какие и сколько - пока неизвестно. Как правило, это определяется при составлении схемы.
Итак, приступим.
Здесь, как вы видите, кнопки запуска и останова теперь не только запускают или останавливают проигрывание. При запуске сначала запускается проигрывание, но сразу же после этого устанавливается максимально возможное значение ползунка (точка doMax выведена из параметра Max) и включается таймер (интервал задани в его параметре Interval в миллисекундах). Важно при установке таймера на рабочее поле не забыть изменить его параметр Enable на False, иначе включаться он будет автоматически при запуске программы, а нам нужно только при запуске проигрывания.
Каждую секунду при проигрывании ползунок меняет своё положение в соответстсвии с текущей позицией проигрывания. А после остановки (хоть кнопкой "стоп", хоть по событию onEndPlay компонента MediaPlayer) таймер отключается.
Ну а при передвижении ползунка устанавливается позиция проигрывания. Причём параметр ползунка ScrollMode установлен в Up, чтобы позиция устанавливалась только после отпускания мыши над компонентом, а не при каждом его перемещении.
Напоследок рассмотрим компоненты для изменения громкости звука. Их два: Volume и VolControl. Первый устанавливает громкость звука во всей операционной системе Windows, а второй - громкость отдельных устройств.
При входе в программу сразу считывается громкость обоих каналов и выдаётся на ползунки (правда, они другой формы, потому что это уже не тот компонент, что мы использовали ранее). А затем с помощью ползунков можно установить громкость. Она берётся отдельно для левого и правого каналов, значение передаётся через точки свойства-данные. Помните, что максимальное значение громкости тут - 65535, и ползунки рассчитаны на такое.
Ну а с VolControl удобнее всего работать через массивы. У него есть две точки свойств: Volume и Mute. Первая содержит массив громкостей устройств, вторая - массив состояний (вкл/выкл). Ну а сами устройства можно посмотреть в параметре Device.
В этом примере происходит сбор всех значений громкостей и вывод в список.
Ценная страничка, особенно в первой части. Можно запросто озвучить любую программу, причем звук спрятать внутри.
ОтветитьУдалитьЗдравствуйте! У меня вопрос по компоненту MediaPlayer! Как пользоваться точкой данных FileName? Как вытащить от туда имя проигрываемого файла на надпись Label, ну или куда нибудь?
ОтветитьУдалитьС точки данных нельзя ничего считать, на неё можно только передать имя файла. Чтобы вывести имя файла на надпись, можно сделать так.
ОтветитьУдалитьА как быть с видео?
ОтветитьУдалитьДля видео нужно просто указать идентификатор окна, куда будет выводиться видео, а все функции компонента работают и с видео.
Удалить