LINUX.ORG.RU

[отчаяние]Помогите найти плеер


0

0

В общем, нужен плеер с клиент-серверной архитектурой, который проверяет директорию (или несколько директорий) на наличие новых файлов и, в случае нахождения оных, добавляет их в плейлист. Ковырял MPD, самое близкое, что я нашел - это http://bbs.archlinux.org/viewtopic.php?id=28195, но оно не работает с субдиректориями. xmms2 мне радостно сообщает, что startup failed и, естественно, вылетает. Есть ли еще варианты? Так же приветствуются способы реализовать нечто подобное с помощью MPD.


Ответ на: комментарий от zloy_buratino

>Rhythmbox

Оно умеет без иксов работать? Нужно еще, что бы можно было рулить удаленно, графическим клиентом. При чем и под линуксом, и под виндой.

Hetor ()

посмотри в сторону mpc - консольный клиент для mpd. умеет выводить плейлист, список доступных директорий, список директорий в файлах. Также умеет добавлять файлы в плейлист. В принципе, скрипт, работающий из крона, который получает текущий плейлист : mpc -h hostname playlist, получает список файлов в директориях, через тот же mpc или ls -R (правда чуть-чуть седом надо подправить, чтобы убрать имена директорий). Дальше сравниваниешь diff или comm, и все файлы из разности добавляешь в плейлист: mpc -h hostname add ${new_file}. В принципе очень просто. Если не осилишь, могу помочь написать.

silw ★★★★★ ()
Ответ на: комментарий от silw

>и все файлы из разности добавляешь в плейлист: mpc -h hostname add ${new_file}

А перед этим разве не нужно делать mpc update, что бы обновить базу данных? А обновляется долго, т.к. файлов много и большенство лежат в smb-шаре на другом компе.

Hetor ()
Ответ на: комментарий от Hetor

да, забыл :) скорость надо мерять по факту. локально через ncmpc 1-3G индексируются практически мгновенно. Да и так ли важна вам скорость добавления в плейлист?

silw ★★★★★ ()
Ответ на: комментарий от silw

>локально через ncmpc 1-3G индексируются практически мгновенно

Увы, там >50 гигов, да еще и через smb. И обновляется оно, мягко говоря, очень не мгновенно. А это еще не все, я пока только одну шару добавил, для тестирования, там на много больше.

Да и так ли важна вам скорость добавления в плейлист?


Ну посмотрим... Пока попробую так, но вообще хотелось бы чего-то более легково, без всяких баз данных и трехчасовых обновлений.

Hetor ()
Ответ на: комментарий от silw

Учитывая то, что плейлист всегда в рэндоме, написал совсем просто и запихнул в cron:

[code]#!/bin/bash

if [ $(mpc playlist | wc -l) != $(mpc listall | wc -l) ]; then
mpc update

while mpc | grep Updating; do
sleep 0.5
done

mpc crop
mpc add /
mpc next
mpc next
mpc del 1

exit 0
else
exit 1
fi
[/code]

Костыль, конечно, но что поделаешь.

У вас там что, радиостанция ?)


Нууу... если только локальная )

Hetor ()
Ответ на: комментарий от Hetor

да, наверное так проще и быстрее, чем искать разницу и добавлять только ее. Не совсем понимаю зачем 2 раза next, еще и del. но это видимо локальный костыль, из-за специфики базы.

silw ★★★★★ ()
Ответ на: комментарий от silw

>да, наверное так проще и быстрее, чем искать разницу и добавлять только ее

Ну в плане написания скрипта, да.

зачем 2 раза next


Первый next почему-то всегда бросает на второй трек.

еще и del


Это чтоб после добавления не появился трек-дубликат того, что сейчас играет.

Но есть один фейл, из-за которого нифига не работает: listall показывает только то, что есть в базе, а не то, что в директориях.

Hetor ()
Ответ на: комментарий от Hetor

Поэтому в самом начале я и говорил про ls. Хотя тут 2 варианта:

ls -1R / | grep -Pv "(^\/|txt|cue|jpg)"
silw ★★★★★ ()
Ответ на: комментарий от silw

либо сначала обновлять базу, по логике, если новых файлов нет, индексация должна быстро проходить.

silw ★★★★★ ()
Ответ на: комментарий от silw

>либо сначала обновлять базу

Тоже об этом подумал. Наверно, пока так и сделаю. При варианте с ls|grep все сломается, если туда засунуть файл с любым расширением, которое я не учел (или даже файл вообще без расширения). Да и медленно будет, контента много.

Hetor ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.