Clubrus - это адаптация Инета под простого российского пользователя!

Реклама в Интернет & Все кулички
Добро пожаловать !
Добавить в избранное







 

Урок 2. Простой MP3-плеер - это не очень просто

Помните, как выводится информация о песне в плеере Winamp? Правильно, одной строчкой - сразу и исполнитель, и, через тире, название песни. А нельзя ли и нам так сделать? Можно. И даже нужно, потому-что при выводе информации непосредственно с помощью CBK-меток в программе Multimedia Builder существуют определенные проблемы.

Итак, в нашем проекте существуют объекты CBK_ID3Artist и CBK_ID3Song. Уберите их куда-нибудь подальше, но не удаляйте! А теперь создайте новый текстовый объект под названием Заголовок. Разместите его поверх черного дисплея, оставив примерно по 80 точек справа и слева (это место еще будет нужно). Выравнивание сделайте левым, с фиксированием ширины. Шрифт лучше выбрать 8-го размера, цвет на ваше усмотрение. А в текстовом поле введите что-нибудь типа "Мой первый мр3-плеер".

Для того, чтобы в этом текстовом объекте выводилась нужная нам информация об исполнителе и композиции, напишем сами специальный скрипт. Создайте объект скрипта и назовите его Вывод заголовка. А текст этого скрипта я сначала выложу здесь, а потом поясню, как он работает:

Artist$ = CBK_ID3Artist
Song$ = CBK_ID3Song
Item$ = CBK_NumInList
if (Artist$ <> '') then
if (Song$ <> '') then
Merged$ = Artist$ + ' - ' + Song$
LoadText("Заголовок","Merged$")
end
end
if (Artist$ = '') then
if (Song$ = '') then
if (Item$ <> '') then
LoadText("Заголовок","Нет информации об исполнителе")
end
end
end
if (Artist$ = '') then
if (Song$ = '') then
if (Item$ = '') then
LoadText("Заголовок","Музыка не загружена!")
end
end
end   

Вначале вводятся три переменные с именами Artist$, Song$ и Item$ (знак $ означает, что это строковая переменная. Строковая переменная может содержать любую буквенно-цифровую информацию). Значения этих переменных извлекаются из объектов с СВK-метками, которые присутствуют в нашем проекте. Переменная Artist$ принимает значение, соответствующее информации об исполнителе, записанной в тэге мр3-файла, переменная Song$  - информации о названии музыкальной композиции, а переменная Item$ - о номере трека в плейлисте (первые три строки в сценарии).

Далее ставится двойное условие, что если переменные Artist$ и Song$ не пустые (не равны нулю), то вводится новая переменная Merged$ (что значит "объединенная"), значение которой складывается из значений двух предыдущих и знака "тире" между ними (см.текст скрипта). Это именно то, что нам и нужно! Теперь осталось вывести эту информацию на дисплей. Что и делает следующая команда LoadText (загрузить текст). В параметрах этой команды через запятую и обязательно в кавычках указывается имя текстового объекта, в который надо загрузить информацию, и какую именно информацию загрузить. Вот и всё. В наш объект с названием Заголовок будет загружена информация, взятая из переменной Merged$, в которой как раз и содержится имя исполнителя и название композиции, записанные через тире. Ура!

В следующем условии говорится, что если значения переменных Artist$ и Song$ пусты, но тем не менее значение Item$ отлично от нуля, то это значит что? Правильно, это значит, что музыка-то в плейлисте все-таки есть, но вот тэгов в данном мр3-файле не написали, поленились. И поэтому дается команда вывести текст о том, что информация отсутствует (смело можете изменить этот текст в скрипте на другой!).

И, наконец, в последнем условии определяется, что если все переменные пусты, нет ни тэгов, ни пунктов в плейлисте, то это может свидетельствовать только об одном - что в плеер ни загрузили ни одного файла! О чем и будет выдано соответствующее сообщение (можете написать что-нибудь веселое типа "Чувак, музыку-то загрузи!").

Уф-ф, кажется, разобрались. Зато теперь у вас, надеюсь, появится хоть какой-то интерес к написанию скриптов.

Однако наш скрипт надо еще как-то активировать. Давайте откроем свойства страшного и непонятного пока скрипта CBK_MP3EOF (вы не забыли, что этот скрипт будет жить у вас всегда, когда вы захотите создать мр3-плеер?) и добавим в нём строку:

RunScript("Вывод заголовка")  

Теперь, после окончания каждой песни, вместе с запуском скрипта CBK_MP3OEF будет запускаться и наш новый скрипт. Но этого будет мало. Такую же строку добавьте и в скрипты кнопок Back и  Next, чтобы при их нажатии одновременно с запуском другой песни выводилась и информация о ней. Эту же строку добавьте и в конце скрипта плейлиста, чтобы при двойном щелчке на выбранной песне появлялась и соответствующая информация. А вот для кнопки Load (открыть файлы) эту строку надо записать несколько иначе:

ScriptTimer("Вывод заголовка","OpenFileScriptTimer")  

То есть тут скрипт будет запущен сразу после открытия файла. Во все скрипты добавляйте новую строку последней. Вытерев пот со лба, проверьте работу вашего плеера. Сразу после его запуска на дисплее появится надпись "Мой первый мр3-плеер". Теперь попробуйте нажать кнопки Play, Back  или Next - и сразу увидите информацию о том, что не загружена музыка. Загрузите файлы и проверьте, корректно ли выводится информация при нажатии кнопок, а также автоматически после перехода от одной песни к другой. Если да, значит, вы всё сделали правильно. И мы можем двигаться дальше.

Назад          Дальше



 URL: http://clubrus.kulichki.net E-mail: Clubrus 





Новая версия этого сайта CLUBRUS.SU



Рейтинг ресурсов УралWeb Rambler's Top100