Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: MOC проигрывание нескольких папок попеременно  (Прочитано 825 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Vail

  • Автор темы
  • Новичок
  • *
  • Сообщений: 43
    • Просмотр профиля
Уважаемое сообщество, помогите новичку, пожалуйста. Проблема в том, что я не могу заставить MOC работать так, как мне нужно.
Собственно задача:
MOC проигрывает музыку из "папка_1"
По CRONу в определенный момент времени проигрывание текущей папки приостанавливается, и начинается проигрывание "папка_2".
По окончанию проигрывания всех треков в "папка_2" возвращается проигрывание "папка_1".

Проблема в том, что я не могу получить общую длительность проигрываемой папки, чтобы установить в скрипте sleep. Может есть другое решение данного вопроса? Лучше консольными приложениями. Выручайте. :-[ Я перерыл кучу форумов, и прочитал MAN. Ничего не нашел.

Оффлайн Alie Alexandross

  • Старожил
  • *
  • Сообщений: 1576
    • Просмотр профиля
А как насчёт создания playlist {папка_1, папка_2, папка_1}, или нужно именно из cron решать?

Если я правильно понимаю, то вопрос даже не по MOC, нужно найти общее время дорожек в папке. Так?
Подпись автора jillsmitt истинна...

Оффлайн Vail

  • Автор темы
  • Новичок
  • *
  • Сообщений: 43
    • Просмотр профиля
Я рассматривал этот вариант. Суть системы в том, что на торговой точке играет фоновая музыка, и, к примеру, раз в час вклиниваются объявления и реклама, потом опять музыка. Ночью система подгружает с центрального сервера новые файлы, и удаляет устаревшие. Если создавать плейлист на всё время работы торговой точки, даже динамически, с помощью скриптов, то сетка вещания будет плавать, и, к примеру, объявление "магазин закрывается через 5 минут" может вообще уползти за пределы времени работы магазина. Ведь длинна треков неизвестна. Суть скрипта в примерно такова:

Скрипт при начале работы магазина:

#!/bin/bash

#Проигрываем папку с музыкой
mocp -c -a "папка_с_музыкой" -p -v 95 -o r
exit 0

Скрипт по крону:

#!/bin/bash

#Проигрываем папку с объявлениями
mocp -c -a "папка_с_объявлениями" -p -v 95
sleep N+1
#Где N - Суммарная длительность текущего плейлиста
#Возвращаемся к папке с музыкой.
mocp -c -a "папка_с_музыкой" -p -v 95 -o r
exit 0

Может  имеет смысл сделать главный скрипт, который будет запускать скрипты последовательно, дожидаясь выполнения одного, прежде чем начать другой. Но MOC никак не сообщает об окончании проигрывания плейлиста. Или я просто не разобрался.

Оффлайн Alie Alexandross

  • Старожил
  • *
  • Сообщений: 1576
    • Просмотр профиля
Если я правильно понимаю, то ситуация там следующая:
Это сервер (условно)
mocp -SА это - клиент:
mocp -c -a "папка_с_музыкой" -p -v 95 -o r

Клиент из скрипта просто отправляет запрос, дожидаться ответа ему не нужно. Потому и не получается в mocp организовать последовательность (у меня, по крайней мере).
ЕМНИП, mpc умеет дожидаться завершения процесса на сервере. Может стоит с ним попробовать поиграть?
Речь об mpd+mpc, если что. Первый - демон, а второй - клиент.
Подпись автора jillsmitt истинна...

 

Страница сгенерирована за 0.071 секунд. Запросов: 25.