ОсновноеRadiotalkПользовательское
Общие вопросы по интернет радио вещанию
7   •   Посмотреть все темы

Связка ices и perl

 

34
Артём @Artyom_Glazunov
Нашел вот такой скрипт на PERL для ices:
  1. # Здесь у нас и обрабатывается основная музыкальная программа
  2. sub track {
  3. $num=`/bin/ls /var/ices/muz/*.mp3 | /usr/bin/wc -l`;
  4. @music=`/bin/ls -1 /var/ices/muz/*.mp3`;
  5. $oldplay = $play;
  6. # Выбираем случайным образом номер файла
  7. $play=int(random_uniform(1, 0, $num));
  8. # Если вдруг нам так повезло и повторно выпал номер играющего файла, то попытаемся снова выбрать случайный файл
  9. if ($oldplay == $play) {
  10. $play=int(random_uniform(1, 0, $num));
  11. }
  12. chomp $music[$play];
  13. # Достаем TAG из mp3 файла
  14. my $tag = get_mp3tag($music[$play]) or die «no»;
  15. if ($tag != «no») {
  16. $artist_name = $tag->{ARTIST};
  17. $songtitle = $tag->{TITLE};
  18. }
  19. else {
  20. # Если нет TAG в файле
  21. $artist_name = «My Radio»;
  22. $songtitle = «Welcome!»;
  23. }
  24. return $music[$play];
  25. }


Как я понял здесь он ищет треки, которые еще не играли, причем рандомно.

Вот как его совместить с джинглами?!

0
68
Алексей @features
  1.  
  2. sub ices_get_next {
  3. print "Perl subsystem quering for new track:\n";
  4. # если время джингла ещё не пришло
  5. if($jingle < 5){
  6. # инкрементим счётчик
  7. $jingle ++;
  8. # выбираем все песни из директории музыки
  9. @music=`/bin/ls -1 /mnt/music_90/*.mp3`;
  10. }else{
  11. # обнуляем счётчик
  12. $jingle = 0;
  13. # выбираем все песни из директории джинглов
  14. @music=`/bin/ls -1 /mnt/jingles/*.mp3`;
  15. }
  16. # считаем количество песен
  17. $num = scalar (@music);
  18. # выбираем случайную
  19. $play=int(rand($num));
  20. chomp $music[$play];
  21. # возвращаем выбранный трек
  22. return $music[$play];
  23. }




Artyom.Glazunov пишет:

Нашел вот такой скрипт на PERL для ices:
  1. # Здесь у нас и обрабатывается основная музыкальная программа
  2. sub track {
  3. $num=`/bin/ls /var/ices/muz/*.mp3 | /usr/bin/wc -l`;
  4. @music=`/bin/ls -1 /var/ices/muz/*.mp3`;
  5. $oldplay = $play;
  6. # Выбираем случайным образом номер файла
  7. $play=int(random_uniform(1, 0, $num));
  8. # Если вдруг нам так повезло и повторно выпал номер играющего файла, то попытаемся снова выбрать случайный файл
  9. if ($oldplay == $play) {
  10. $play=int(random_uniform(1, 0, $num));
  11. }
  12. chomp $music[$play];
  13. # Достаем TAG из mp3 файла
  14. my $tag = get_mp3tag($music[$play]) or die «no»;
  15. if ($tag != «no») {
  16. $artist_name = $tag->{ARTIST};
  17. $songtitle = $tag->{TITLE};
  18. }
  19. else {
  20. # Если нет TAG в файле
  21. $artist_name = «My Radio»;
  22. $songtitle = «Welcome!»;
  23. }
  24. return $music[$play];
  25. }


Как я понял здесь он ищет треки, которые еще не играли, причем рандомно.

Вот как его совместить с джинглами?!

Это полный скрипт или часть? Тут используется переменная $play которая должна хранить информацию о том что играло. Но где она определяется не показано.

0
34
Артём @Artyom_Glazunov
features пишет:

  1.  
  2. sub ices_get_next {
  3. print "Perl subsystem quering for new track:\n";
  4. # если время джингла ещё не пришло
  5. if($jingle < 5){
  6. # инкрементим счётчик
  7. $jingle ++;
  8. # выбираем все песни из директории музыки
  9. @music=`/bin/ls -1 /mnt/music_90/*.mp3`;
  10. }else{
  11. # обнуляем счётчик
  12. $jingle = 0;
  13. # выбираем все песни из директории джинглов
  14. @music=`/bin/ls -1 /mnt/jingles/*.mp3`;
  15. }
  16. # считаем количество песен
  17. $num = scalar (@music);
  18. # выбираем случайную
  19. $play=int(rand($num));
  20. chomp $music[$play];
  21. # возвращаем выбранный трек
  22. return $music[$play];
  23. }




Artyom.Glazunov пишет:

Нашел вот такой скрипт на PERL для ices:
  1. # Здесь у нас и обрабатывается основная музыкальная программа
  2. sub track {
  3. $num=`/bin/ls /var/ices/muz/*.mp3 | /usr/bin/wc -l`;
  4. @music=`/bin/ls -1 /var/ices/muz/*.mp3`;
  5. $oldplay = $play;
  6. # Выбираем случайным образом номер файла
  7. $play=int(random_uniform(1, 0, $num));
  8. # Если вдруг нам так повезло и повторно выпал номер играющего файла, то попытаемся снова выбрать случайный файл
  9. if ($oldplay == $play) {
  10. $play=int(random_uniform(1, 0, $num));
  11. }
  12. chomp $music[$play];
  13. # Достаем TAG из mp3 файла
  14. my $tag = get_mp3tag($music[$play]) or die «no»;
  15. if ($tag != «no») {
  16. $artist_name = $tag->{ARTIST};
  17. $songtitle = $tag->{TITLE};
  18. }
  19. else {
  20. # Если нет TAG в файле
  21. $artist_name = «My Radio»;
  22. $songtitle = «Welcome!»;
  23. }
  24. return $music[$play];
  25. }


Как я понял здесь он ищет треки, которые еще не играли, причем рандомно.

Вот как его совместить с джинглами?!

Это полный скрипт или часть? Тут используется переменная $play которая должна хранить информацию о том что играло. Но где она определяется не показано.



Это код со статьи **********

Можете мне в ICQ написать? 635398547
или в скайп artem.glazunov

Отредактировано Artyom_Glazunov - 28.07.2014
0





Согласие на обработку данных на нашем сайте

Продолжая просматривать страницу, вы соглашаетесь с использованием файлов «Cookie» и с Политикой конфиденциальности «Privacy».
Наверху или внизу страницы вы можете изменить валюту и язык по умолчанию. Английская версия сайта ещё находится в доработке и доступна не полностью.