Технический форум
Вернуться   Технический форум > Программирование > Форум программистов


Ответ
 
Опции темы Опции просмотра
Старый 27.07.2014, 23:18   #1 (permalink)
GlaZZZ
Любитель
 
Аватар для GlaZZZ
 
Регистрация: 19.01.2011
Сообщений: 4,794
Записей в дневнике: 6
Сказал(а) спасибо: 105
Поблагодарили 28 раз(а) в 10 сообщениях
Репутация: 13067
По умолчанию Скрипт на Perl

Всем привет!

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

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

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

Поможете?
GlaZZZ вне форума   Ответить с цитированием

Старый 27.07.2014, 23:18
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Зачастую можно найти решение сразу, если обратить внимание на похожие темы

Изменить скрипт
Помогите с программой на Perl
Как выполнить скрипт в uVS
Скрипт не работает
Perl скрипт регистрации и авторизации без БД
Скрипт для юкоза

Старый 28.07.2014, 11:24   #2 (permalink)
Debianer
Member
 
Регистрация: 07.08.2012
Сообщений: 325
Сказал(а) спасибо: 14
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1671
По умолчанию

Ну, я немного знаю.
Скрипт сюдыма, и конкретнее, что именно глючит
Debianer вне форума   Ответить с цитированием
Старый 28.07.2014, 14:12   #3 (permalink)
GlaZZZ
Любитель
 
Аватар для GlaZZZ
 
Регистрация: 19.01.2011
Сообщений: 4,794
Записей в дневнике: 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
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 17:20.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.