Видео ролики бесплатно онлайн

Смотреть красотки видео

Официальный сайт mixzona 24/7/365

Смотреть видео бесплатно


Iliander 10.05.10 21:05 # +1
Насчет MPD.
Как вариант, сделать обертку в виде скрипта, который мониторит наличие файлов в директории /mnt/cdrom (или вызов по hal, к примеру, чтобы не держать постоянно скрипт в памяти). В общем, вставляется диск, он автоматически монтируется hal'ом и вызывается скрипт. Он делает симлинк в директорию с аудиотекой mpd, проверяет, пустой ли плейлист (или, что лучше, проверяет текущий статус mpd [playing|stop|paused]) и если плеер остановлен, то очищает текущий плейлист и добавляет в него симлинк. :)
В принципе, в этом нет ничего сложного в реализации, если я ничего не упустил.
Iliander 10.05.10 23:10 # +3
Стало скучно, решил побаловаться и сделать набросок...

Вот скрипт, который выполняет все необходимые действия, в целом — довольно понятный.

/usr/local/bin/cdrom-mpd.sh:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/bash

#
# $1 будет путем к устройству, передаваемым hal'ом.
# $2 будет указанием на то, диск вставлен или извлечен
#
MUSICLIB="/home/music" # Где находится директория, которую сканирует
CDROM="$1"
MNTTO="/mnt/cdrom"
LINKAS="cdrom"

checkmpc() {
        if $(mpc | grep -q '\[playing\]') ; then
                exit
        else
                mpc clear -q
        fi
}


if [[ $2 =  remove ]] ; then
        mpc clear -q
        rm -f $MUSICLIB/${LINKAS}
        umount --force ${CDROM}
elif [[ $2 = mount ]] ; then
        mount ${CDROM} ${MNTTO}
        ln -sf $MNTTO ${MUSICLIB}/${LINKAS}
        checkmpc
        mpc update -q && mpc add ${LINKAS} -q
fi

А вот пример правил udev, которые вызывают этот скрипт:

/etc/udev/rules.d/10-cdrom.rules

1
2
3
4
5
# Правило для udev
# Поправить путь к скрипту и покласть в /etc/udev/rules.d/

ACTION=="add", KERNEL=="cdrom", RUN+="/usr/local/bin/cdrom-mpd.sh /dev/%k mount", OPTIONS="last_rule"
ACTION=="remove", KERNEL=="sd[d-z][0-9]", RUN+="/usr/local/bin/cdrom-mpd.sh /dev/%k remove"

Только у меня есть подозрение, что в нынешнем виде эти правила для udev работать не будут. Я не уверен, как udev реагирует на появление диска в приводе (ACTION в правилах, да) и реагирует ли вообще. В общем, гуглить за этим делом надо.
Ещё я не уверен, будет ли верно работать размонтирование устройства.
Но тестировать у меня возможности нет, т.к. привод у меня уже больше года отключен физически, о чем я не очень-то и жалею. :)
kstep 11.05.10 03:44 # +1
udev реагирует. ACTION при этом равен change.
kstep 11.05.10 03:45 # +1
Да, и он не делает разницы вставлен диск или нет, просто кидает ивент с ACTION=change.
Iliander 11.05.10 12:23 # +0
Это не сильно усложнило задачу. Даже сделало ее интересней :)


/usr/local/bin/cdrom-mpd.sh:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/bin/bash

#
# $1 будет путем к устройству, передаваемым hal'ом.
#
MUSICLIB="/home/music" # Где находится директория, которую сканирует
CDROM="$1"
MNTTO="/mnt/cdrom"
LINKAS="cdrom"

checkmpc() {
        if $(mpc | grep -q '\[playing\]') ; then
                exit
        else
                mpc clear -q
        fi
}

cdmount () {
        mount ${CDROM} ${MNTTO}
        ln -sf $MNTTO ${MUSICLIB}/${LINKAS}
        checkmpc
        mpc update -q && mpc add ${LINKAS} -q
}

cdumount() {
        mpc clear -q
        rm -f $MUSICLIB/${LINKAS}
        umount --force /dev/cdrom
}

checkmount () {
#if [[ -n "$(ls ${MNTTO})" ]]; then
if $(mount | grep ${CDROM}); then
        false
else
        true
fi
}

if checkmount ; then
        cdmount
else
        cdumount
fi

Единственное, что стоит заметить, так это то, что могут быть проблемы с размонтированием диском, если он будет извлечен до размонтирования в системе (если будет). По крайней мере, на сколько мне помнится, я с чем-то подобным сталкивался.
Так вот, если подобные проблемы будут, то в моем коде в функции "checkmount" стоит закомментировать один if и раскоментировать второй — сейчас идёт проверка по mount, а в закомментированом if'е проверка по наличию файлов в директории. :)
И да, вот правило для udev:
/etc/udev/rules.d/10-cdrom.rules:
1
2
3
4
# Правило для udev
# Поправить путь к скрипту и покласть в /etc/udev/rules.d/

ACTION=="change", KERNEL=="cdrom", RUN+="/usr/local/bin/cdrom-mpd.sh /dev/%k", OPTIONS="last_rule"
Guest007 11.05.10 00:09 # +0
Ухты! Спасибо огромное! Буду пробовать. Пока у меня на той машинке правилом udev запускается/убивается fluidsynth. Т.е. подоткнул миди-клаву - флюид загрузился, выдернул - выгрузился из памяти. Иногда приглючивает (не знаю, кто - драйвер клавы, флюид или ещё что) - достаточно передёрнуть провод.

10.05.10 18:06 Guest007

Есть вопрос!автопроигрываение аудиодиска

Приветствую.

Есть "чёрный ящик": Пень3, к которому подключены лишь колонки и миди-клава. Дети вместо пианино используют для занятия музыкой. Хочется сделать из этого медиацентр такого плана: Пусть он играет музыку. Для этого там будет поднят mpd, берущий файлы по сети с моего компа. С моего-же компа (или с ноута или с детского) можно управлять процессом удалённо. На то он и MPD.
Но. Хочется, чтобы при заталкивании в него аудиодиска он начинал его проигрывать сам (если нет других заданий на воспроизведение). Как это реализовать? Графики там не стоит вообще, монитор, клава, мышь не планируются.

И ещё. Как-то можно с миди-клавы управлять чем-то в компе (как-то обрабатывать эти события)?

Заранее благодарен.


Посты Комментарии
Последние посты
    Посты Комментарии
    Последние комментарии
      Посты Комментарии
      Изменения
        Посты Комментарии Изменения Черновики Избранное
        Черновики (все)
          Посты Комментарии Изменения Черновики Избранное
          Избранное (всё)
            Посты Комментарии Изменения Черновики Избранное
            Лучшие блоги (все 133)
            Топ пользователей Топ блогов
            Топ пользователей Топ блогов
            Элита (все 2591 из 204 городов)
            Топ пользователей Топ блогов
            В сети: goblinyara, shidoh, yuretsz

            Новенькие: RedLine, f0y, myinazosicnjkr, megabaks, andromedius
            welinux.ru

            Смотреть видео онлайн

            Онлайн видео бесплатно


            Смотреть русское с разговорами видео

            Online video HD

            Видео скачать на телефон

            Русские фильмы бесплатно

            Full HD video online

            Смотреть видео онлайн

            Смотреть HD видео бесплатно

            School смотреть онлайн