В общем есть такой код:
Код:
sub ices_shutdown {
print "Perl subsystem shutting down:\n";
}
sub ices_get_next {
print "Perl subsystem quering for new track:\n";
if($jingle < 5){
$jingle ++;
@music=`/bin/ls -1 /mnt/test/*.mp3`;
}else{
$jingle = 0;
@music=`/bin/ls -1 /mnt/jingles/*.mp3`;
}
$num = scalar (@music);
$play=int(rand($num));
chomp $music[$play];
return $music[$play];
}
sub ices_get_metadata {
$tag = get_mp3tag($file) or die "No TAG info";
return "$tag->{TITLE} ";
}
return 1;
Получается через каждые 5 треков включается случайный джингл с папки джинглов. Но из-за того, что сами треки берутся рандомно с папки "test", то после джингла включается почему-то трек, который играл до джингла. И так сколько я проверял, было всегда.
Как избавиться от этой фигни?
Я уже думал, может треки брать с плейлиста? Допустим подключить файл playlist.txt, где на каждой строчке писалась бы ссылка к файлу "/mnt/test/Metallica - Nothing else matter.mp3"
В любом случае мне не важно каким образом будут браться треки с папки. Лучше конечно, если будет рандомно, но без таких глюков с повторами.
Может при выборе нового трека сделать какое-то условие с проверкой был ли этот трек уже или нет?!