Показать сообщение отдельно
Старый 28.07.2014, 14:12   #3 (permalink)
GlaZZZ
Любитель
 
Аватар для GlaZZZ
 
Регистрация: 19.01.2011
Сообщений: 4,792
Записей в дневнике: 6
Сказал(а) спасибо: 105
Поблагодарили 28 раз(а) в 10 сообщениях
Репутация: 13067
По умолчанию

В общем есть такой код:
Код:
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"

В любом случае мне не важно каким образом будут браться треки с папки. Лучше конечно, если будет рандомно, но без таких глюков с повторами.

Может при выборе нового трека сделать какое-то условие с проверкой был ли этот трек уже или нет?!
GlaZZZ вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070