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

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







 

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

Предупреждаю, что эта страница будет очень скучной, но наберитесь терпения и пройдите ее до конца. А в качестве награды вас ждет непередаваемое ощущение радости творчества! (А уж если вы совсем нетерпеливы, можете посмотреть, что у нас получится в итоге всей работы).

Прежде всего реанимируем наш плеер, чтобы убедиться в его работоспособности.

Сначала зайдите в свойства плейлиста, нажмите кнопку "Действие" и напишите там такой скрипт (скрипт нужно написать на вкладке Double Click):

ListBoxGetSelectedItems("SongList","Items$,ItemsNum$,#,NumItems")
for i=1 to NumItems
t$ = GETARRAYITEM(Items$,#,i)
t$ = t$ + '_'
numitem$ = GETARRAYITEM(ItemsNum$,#,i)
numitem = VAL(numitem$)
SongListPlay("numitem")
next i  

Ничего не поделаешь, придется пока обойтись без объяснений. Просто без этого скрипта вы не сможете запускать проигрывание файлов по двойному щелчку в плейлисте. Сразу оговорюсь, что скрипт этот, как и все последующие кроме тех, что мы будем создавать сами, написан автором программы Multimedia Builder (Roman Voska).

Кроме того, чтобы плейлист работал, в проекте должны присутствовать еще два объекта - это текстовые объекты с метками CBK_NumInList и CBK_CurItemList. Четыре текстовых объекта с CBK-метками у нас в проекте уже присутствуют: два из них служат для вывода времени, а два - для показа информации о песне. Как можно догадаться из названия меток, указанные в начале абзаца объекты выводят информацию об общем количестве загруженных песен (файлов) и о номере текущей проигрываемой песни. Эти два объекта будут в дальнейшем использованы в качестве параметров в некоторых скриптах, и поэтому их отсутствие в проекте сделает скрипты неработоспособными.

Итак, создайте два текстовых объекта, присвойте им указанные метки и... положите пока где-нибудь в стороне от окна проекта.

Теперь зайдём в свойства кнопки, предназначенной для загрузки мр3-файлов. В области назначения действий мы видим, что единственное действие, назначенное этой кнопке - Audio Open. Отмените это действие, потому-что вместо него мы напишем специальный скрипт. Откройте окошко скриптов. Здесь есть две закладки: Mouse Up  и Mouse Down. На закладке Mouse Up напишите следующий скрипт (можно скопировать его прямо с этой страницы):

AudioOpen("")
ListBoxAddItem("SongList","RESET")
ListBoxAddItem("SongList","<List>")
CurListItem = CBK_CurItemList
ListBoxDeselectItem("SongList","-1")
ListBoxSelectItem("SongList","CurListItem")
RunScript("SongListStatusScr") 

А на закладке Mouse Down - только одну строчку:

ListBoxAddItem("Playlist","")

Из текста скрипта можно понять, что он обеспечивает открытие аудио-файлов и загрузку заголовков в плейлист. Видно также, что в этом скрипте уже используется имя объекта CBK_CurItemList, который мы предусмотрительно создали.

А сейчас проверьте работу вашего проекта. Откройте несколько мр3-файлов, и... о чудо! - они загрузились в плейлист! Попробуйте запускать проигрывание разных песен путем двойного щелчка мышью по их названием в плейлисте. Срабатывает? Хорошо, это уже результат. Однако, после окончания текущей песни, когда автоматически начинается проигрывание следующей, в плейлисте не происходит "перескакивание" выделения на новую песню, а в заголовок по-прежнему не выводится информация. И индикаторы времени снова затихли...

Здесь самое время рассказать вам еще об одном объекте типа CBK, который предусмотрели разработчики программы. Это сценарий, который должен иметь метку CBK_MP3EOF. Если на странице проекта имеется сценарий с таким именем, он всегда будет запускаться после окончания проигрывания текущего мр3-файла. Так вот, чтобы всё заработало, поместите в вашем проекте скрипт под названием CBK_MP3EOF следующего содержания:

MaxNum = CBK_NumInList
CurListItem = CBK_CurItemList
if (WhatSongStat$ = 'next') then
WhatSongStat$ = ''
CurListItem = CBK_CurItemList + 1
if (CurListItem > MaxNum) then
CurListItem = MaxNum
Return()
end
SongListPlay("CurListItem")
ListBoxDeselectItem("SongList","-1")
ListBoxSelectItem("SongList","CurListItem")
Return()
end
if (WhatSongStat$ = 'prev') then
WhatSongStat$ = ''
CurListItem = CBK_CurItemList - 1
if (CurListItem < 1) then
CurListItem = 1
Return()
end
SongListPlay("CurListItem")
ListBoxDeselectItem("SongList","-1")
ListBoxSelectItem("SongList","CurListItem")
Return()
end
if (CurListItem = MaxNum) then
Return()
end
CurListItem = CBK_CurItemList + 1
SongListPlay("CurListItem")
ListBoxDeselectItem("SongList","-1")
ListBoxSelectItem("SongList","CurListItem")  

Пока никаких комментариев по поводу этого скрипта я давать не буду - для этого нужно сначала тщательно изучить команды, доступные в Multimedia Builder. Со временем, постепенно изучая эти команды и язык скриптов, вы сами начнете все понимать. А пока наша главная задача - сделать работающий мр3-плеер.

Ну что, создали скрипт? А теперь посмотрите, как волшебным образом изменилось поведение нашего плеера! После окончания одной песни строчка выделения в плейлисте сама перескакивает на следующую, выводятся ID3-тэги и послушно отсчитывается время!

Поблагодарите себя за терпение и усидчивость, а меня - за то, что открыл вам секреты - и читайте дальше! Будет уже не так скучно. (Похоже, что эта страница оправдала название статьи :))  - авт.)

Назад          Дальше



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





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



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