Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Perl Скрипт, Скрипт проигрывания музыки 
V
    Опции темы
Badmne
Дата 7.4.2011, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 4.4.2011

Репутация: нет
Всего: нет



ну в смысле , как? =) что показать? 
PM MAIL   Вверх
arto
Дата 7.4.2011, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



написал вам -- если время ровно 12:55:00, то вам проиграют музыку из другого каталога.
PM MAIL ICQ   Вверх
Badmne
Дата 7.4.2011, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 4.4.2011

Репутация: нет
Всего: нет



Извините, не понял последней фразы +(
PM MAIL   Вверх
arto
Дата 7.4.2011, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



PM MAIL ICQ   Вверх
Badmne
Дата 10.4.2011, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 4.4.2011

Репутация: нет
Всего: нет



Вставил код. 
Код

Logfile opened
syntax error at /usr/local/etc/modules/ices.pm line 17, near ")
       return"
Compilation failed in require at -e line 1.
BEGIN failed--compilation aborted at -e line 1.
Initialization of playlist handler failed. []
Ices Exiting...



сам плагин выглядит так:
Код

my @mp3; sub ices_init {
   my @j = </home/gguser/radio/vstavki/*.mp3>;
   my ( $i,$j );
   @mp3 = map { if (++$i%6 == 0) { $j[++$j%$#j] } else { $_ } } 
</home/gguser/radio/nonstop/*.mp3>;

}

sub ices_shutdown {
        print "Perl subsystem shutting down:\n";
}

sub ices_get_next { 
    my ($h, $m, $s) = ( localtime )[2,1,0];

    if ($h == 12 && $m == 55 && $s == 0)
       return ( </home/gguser/radio/other_muzika/*.mp3> )[0];
 
ices_init () unless (@mp3);
return shift @mp3;
}

sub ices_get_metadata {
       return "blablabla";

}

1;


PM MAIL   Вверх
arto
Дата 11.4.2011, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



if ($h == 12 && $m == 55 && $s == 0) {
       return (( </home/gguser/radio/other_muzika/*.mp3> )[0]);
}
PM MAIL ICQ   Вверх
Badmne
Дата 11.4.2011, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 4.4.2011

Репутация: нет
Всего: нет



Скрипт прочёлся без проблем. Перл его скушал, только в заданное время - 0 реакции =( Проигрывает дальше музыку из первоначальной папки. 
PM MAIL   Вверх
arto
Дата 11.4.2011, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



естественно.
система должна прерваться.
пошлите ей сигнал, например KILL
PM MAIL ICQ   Вверх
Badmne
Дата 11.4.2011, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 4.4.2011

Репутация: нет
Всего: нет



я полностью перезапустил всю систему... +(
PM MAIL   Вверх
arto
Дата 11.4.2011, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



ну. я не знаю, как работает ваша система.
изучайте документацию.
PM MAIL ICQ   Вверх
Badmne
Дата 12.4.2011, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 4.4.2011

Репутация: нет
Всего: нет



Your script module has to define at least a function named ices_get_next, which should return a path to a file or FIFO containing MP3 data.
In addition you may define the functions ices_init and ices_shutdown which will be called by ices once before asking for the first song and before shutting down, respectively.
You may also define ices_get_lineno, which specifies the line number of the current track in the cue file. If you don't use the cue file it is safe to omit this function.
Finally you can define ices_get_metadata to return a string you want to use for title streaming. Ices will call this function once per track after calling ices_get_next. If this function is not defined or returns null, ices will use whatever it can get out of the file itself, either tags or the file name.
I suggest you take a look in the distributed module files and just expand on that. 

Нашел вот это... может не ту команду подаёт перл скрипт?
PM MAIL   Вверх
arto
Дата 12.4.2011, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



вы английский понимаете?
нет там возможности прервать текущий трек.
можете попробовать вот эти сигналы для передргивания трека: HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH POLL PWR SYS, но я не уверен, что они помогут.

максимум -- обрезать перед запуском трек, подстраиваясь под время.
PM MAIL ICQ   Вверх
Badmne
Дата 12.4.2011, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 4.4.2011

Репутация: нет
Всего: нет



ну допустим команда USR1 - включает сразу следующую песню.
Значит делаем вывод, что перл не может оборвать песенку в опред. время и поставить другую из другой папки. А как-нибудь заставить через cron это сделать тоже нереально?


Это сообщение отредактировал(а) Badmne - 12.4.2011, 20:28
PM MAIL   Вверх
arto
Дата 12.4.2011, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



ну и проверяйте в ices_get_next время, и в нужное включайте нужный трек.
в crontab пропишите посылку сигнала в нужное время.
PM MAIL ICQ   Вверх
Louie
Дата 21.4.2011, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 28.2.2011

Репутация: нет
Всего: нет



Товарищи.. вернусь к скрипту, который Вы написали. Спасибо Вам огромное, но у меня вопросик. Можно ли как-то подправить скрипт, чтобы после "вставки" он проигрывал следующий файл, а не через один. Получается что "вставка" сьедает композицию. Вот пример:
У меня есть 20 файлов в основной папке. Вставки играют каждые 5 файлов. И получается что у меня сьедается файл под номером 6,11,16.
Как то можно подредактировать ?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0839 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.