Создадим новый проект и добавим в него звуковой файл music.mid в формате midi, который можно взять здесь ("Правая кнопка" -> "Сохранить как"). Если не помните, как добавлять в проект ресурсные файлы, то посмотрите еще раз главу "Вывод картинки".
Теперь разберемся с командами, которые потребуются нам для работы со звуком.
OpenPlayer('имя_файла','тип_содержимого_файла') - Загрузить указанный аудио-файл из ресурсов (из вашего JAR архива) в плеер. Обратите внимание, что перед именем файла нужно обязательно писать символ "/". Воспроизведение не будет начато пока вы не вызовете команду StartPlayer. Команды возвращает значение false ("ложь") если произошла ошибка чтения файла или какая-либо другая ошибка. Параметр "тип_содержимого_файла" описывает тип загружаемого файла и может принимать одно из следующих значений:
Помните, что не все устройства поддерживают MP3 и WAV форматы файлов.
SetPlayerCount(число_повторов) - Устанавливает количество повторов данной мелодии при воспроизведении, указанное в скобках. Эту команду нужно вызывать после вызова OpenPlayer и до вызова StartPlayer. Если число_повторов равно 1, то мелодия будет играть 1 раз, если же число_повторов равно -1, то мелодия будет играть до бесконечности. Команда возвращает true ("истина") если она исполнена или false ("ложь") если возникла какая-то ошибка.StartPlayer - Начинает проигрывание мелодии, которая до этого была загружена с помощью команды OpenPlayer. Команда возвращает false ("ложь") если воспроизведение не может быть начато (например, данный телефон не умеет работать с этим форматом звукового файла).
|
Обратите внимание на то, что все эти три команды, возвращают значение, сигнализирующее о том, выполнена команда или нет. Это необходимо для того, чтобы в случае ошибки не вызывать следующую команду. Например, если не удалось загрузить звуковой файл, то не надо пытаться включать воспроизведение мелодии.
Команды, которые не только выполняют какое-либо действие,
но еще возвращают результат выполнения этого действия, называют
функциями. В процессе работы программы имя функции заменяется значением
результата выполнения функции, поэтому команды-функции нельзя указывать
отдельно от других команд. Значение, возвращаемое функцие, должно быть
присвоено какой-либо переменной или использовано в операции сравнения.
Например:
a := function(x);
или
if function(x) > 3 then a := 4;
Итак, функции работы со звуковым файлом возвращают сообщение о том, удалось ли выполнить положенное им действие. Если действие выполнить не удалось, то дальнейшая работа со звуком невозможна и надо прекратить выполнение программы.
Для прерывания работы программы мы будем использовать команду Halt, завершающую исполнение программы сразу после её вызова.
Но мы не можем записать Halt просто так, поскольку в этом случае наша программа всегда будет прерываться, не дойдя до конца. Как сделать так, чтобы Halt вызывался только лишь, когда функция вернула значение false ("ложь")? Для этого используется так называемый условный оператор.
|
Оператор if ... позволяет Вам определять операции, которые будут выполнены
только при выполнении некоторого условия. Записывается он так:
if Условие then
Действие;
Здесь Условие - это некоторое логическое выражение. Оно должно быть
верным для того чтобы было выполнено Действие. Например:
if x > 5 then
y := x + 5;
|
Program Midi; Begin if not OpenPlayer('/music.mid', 'audio/midi') then Halt; // Открыть в проигрывателе звуковой файд // Если файл отсутствует, завершить программу if not SetPlayerCount(-1) then Halt; // Установить бесконечное число повторов мелодии // Если ошибка, то завершить программу if not StartPlayer then Halt; // Начать проигрывание мелодии // Если плейер не поддерживает данный формат midi, завершить программу Delay(5000); // Мелодия играет 5 секунд end. |
В заключение следует кратко упомянуть еще две команды работы со звуком, которые имеются в MIDletPascal.
StopPlayer - останавливает воспроизведение мелодии, которая проигрывается в данный момент.
GetPlayerDuration - Возвращает продолжительность загруженной в плеер мелодии в миллисекундах (1 секунда = 1000 миллисекунд).
ПРИМЕЧАНИЕ: Продолжительность некоторых MP3 мелодий может определяться неправильно из-за особенностей сжатия файла. Часто продолжительность MIDI мелодии не удаётся определить вообще.
К содержанию
|
|
![]() |
Скачать новую версию данного учебника в одном архиве
Курс находится в процессе разработки, поэтому архив постоянно обновляется! |