MainRadiotalkCustom
Общие вопросы по интернет радио вещанию
6   •   Посмотреть все темы

Связка ices и perl

 

34
Артём @Artyom_Glazunov
Нашел вот такой скрипт на PERL для ices:
# Здесь у нас и обрабатывается основная музыкальная программа
sub track {
$num=`/bin/ls /var/ices/muz/*.mp3 | /usr/bin/wc -l`;
@music=`/bin/ls -1 /var/ices/muz/*.mp3`;
$oldplay = $play;
# Выбираем случайным образом номер файла
$play=int(random_uniform(1, 0, $num));
# Если вдруг нам так повезло и повторно выпал номер играющего файла, то попытаемся снова выбрать случайный файл
if ($oldplay == $play) {
$play=int(random_uniform(1, 0, $num));
}
chomp $music[$play];
# Достаем TAG из mp3 файла
my $tag = get_mp3tag($music[$play]) or die «no»;
if ($tag != «no») {
$artist_name = $tag->{ARTIST};
$songtitle = $tag->{TITLE};
}
else {

# Если нет TAG в файле
$artist_name = «My Radio»;
$songtitle = «Welcome!»;
}
return $music[$play];
}


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

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

68
Алексей @features

sub ices_get_next {
print "Perl subsystem quering for new track:\n";
# если время джингла ещё не пришло
if($jingle < 5){
# инкрементим счётчик
$jingle ++;
# выбираем все песни из директории музыки
@music=`/bin/ls -1 /mnt/music_90/*.mp3`;
}else{
# обнуляем счётчик
$jingle = 0;
# выбираем все песни из директории джинглов
@music=`/bin/ls -1 /mnt/jingles/*.mp3`;

}
# считаем количество песен
$num = scalar (@music);
# выбираем случайную
$play=int(rand($num));
chomp $music[$play];
# возвращаем выбранный трек
return $music[$play];
}




Artyom.Glazunov пишет:

Нашел вот такой скрипт на PERL для ices:
# Здесь у нас и обрабатывается основная музыкальная программа
sub track {
$num=`/bin/ls /var/ices/muz/*.mp3 | /usr/bin/wc -l`;
@music=`/bin/ls -1 /var/ices/muz/*.mp3`;
$oldplay = $play;
# Выбираем случайным образом номер файла
$play=int(random_uniform(1, 0, $num));
# Если вдруг нам так повезло и повторно выпал номер играющего файла, то попытаемся снова выбрать случайный файл
if ($oldplay == $play) {
$play=int(random_uniform(1, 0, $num));
}
chomp $music[$play];
# Достаем TAG из mp3 файла
my $tag = get_mp3tag($music[$play]) or die «no»;
if ($tag != «no») {
$artist_name = $tag->{ARTIST};
$songtitle = $tag->{TITLE};
}
else {

# Если нет TAG в файле
$artist_name = «My Radio»;
$songtitle = «Welcome!»;
}
return $music[$play];
}


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

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

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

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


sub ices_get_next {
print "Perl subsystem quering for new track:\n";
# если время джингла ещё не пришло
if($jingle < 5){
# инкрементим счётчик
$jingle ++;
# выбираем все песни из директории музыки
@music=`/bin/ls -1 /mnt/music_90/*.mp3`;
}else{
# обнуляем счётчик
$jingle = 0;
# выбираем все песни из директории джинглов
@music=`/bin/ls -1 /mnt/jingles/*.mp3`;

}
# считаем количество песен
$num = scalar (@music);
# выбираем случайную
$play=int(rand($num));
chomp $music[$play];
# возвращаем выбранный трек
return $music[$play];
}




Artyom.Glazunov пишет:

Нашел вот такой скрипт на PERL для ices:
# Здесь у нас и обрабатывается основная музыкальная программа
sub track {
$num=`/bin/ls /var/ices/muz/*.mp3 | /usr/bin/wc -l`;
@music=`/bin/ls -1 /var/ices/muz/*.mp3`;
$oldplay = $play;
# Выбираем случайным образом номер файла
$play=int(random_uniform(1, 0, $num));
# Если вдруг нам так повезло и повторно выпал номер играющего файла, то попытаемся снова выбрать случайный файл
if ($oldplay == $play) {
$play=int(random_uniform(1, 0, $num));
}
chomp $music[$play];
# Достаем TAG из mp3 файла
my $tag = get_mp3tag($music[$play]) or die «no»;
if ($tag != «no») {
$artist_name = $tag->{ARTIST};
$songtitle = $tag->{TITLE};
}
else {

# Если нет TAG в файле
$artist_name = «My Radio»;
$songtitle = «Welcome!»;
}
return $music[$play];
}


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

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

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



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

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

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