• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Скрипт на Perl

  • Автор темы Автор темы GlaZZZ
  • Дата начала Дата начала

GlaZZZ

Любитель
Поддержка
Регистрация
19 Янв 2011
Сообщения
4,792
Реакции
145
Баллы
0
Скрипт на Perl

Всем привет!

Признавайтесь, кто знает язык Perl?

У меня проблемка небольшая со скриптом выборки треков для радио.

Вещалка использует скрипт Перл для выборки треков и вывода метаданных.

Поможете?
 
Ну, я немного знаю. :)
Скрипт сюдыма, и конкретнее, что именно глючит
 
В общем есть такой код:
Код:
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"

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

Может при выборе нового трека сделать какое-то условие с проверкой был ли этот трек уже или нет?!
 
Назад
Сверху