Тема: Музыка
Показать сообщение отдельно
Старый 28.09.2005, 13:46   #21
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Вот рабочий пример:

SeedRnd(MilliSecs())

Global counter
Global channel


While Not (KeyHit (1))

If ChannelPlaying (channel) = 0 SelectRandMusic("music")

Wend

End


Function SelectRandMusic(DIR$)
Local counter%=0

Local dir_h%=ReadDir(DIR$)
While True
 file$=NextFile$(dir_h)
If Upper$(Right(file$,3))="MP3"
 counter=counter+1
EndIf
If file$="" Exit
Wend
CloseDir dir_h
Print "files="+counter
Local iR%=Rand(1,counter%)
If Not counter Return False
counter=0
dir_h%=ReadDir(DIR$)
While True
file$=NextFile$(dir_h)
If Upper$(Right(file$,3))="MP3" 
 counter=counter+1
 If counter%=iR
 Print "select - "+IR+" = "+file$
 channel=PlayMusic(DIR$+"\"+file$)
 Exit
 EndIf
EndIf
Wend
Return channel
End Function
Изменения:
1. Сделал проверку играет ли щас муза или нет, если нет, то заново запускаем
2. ЛОКАЛЬНУЮ переменную channel удалил к чертям! Значение локальных переменных ТЕРЯЕТСЯ при выходе из функции.
(Offline)
 
Ответить с цитированием