LINUX.ORG.RU

[mpc] Запуск файла.

 


0

1

Сабж.

Перечитал пару раз ман, но так и не понял, как через него запускать просто файлы, не из библиотеки?

// Прикручиваю к mc =)

Deleted

Как вариант - создай в директории библиотеки симлинк на нужный аудиофайл.

drull ★☆☆☆
()

никак, mpc это клиент для mpd, он воспроизводит только то, что лежит в директории «music_directory» из /etc/mpd.conf.

// пиши какой нибудь hook для добавления файла или symlink в mpd db, а потом воспроизводи... но это извращение.

qbbr ★★★★★
()

не слушай клоунов выше

mpd поддерживает inotify
сделай ln -s ~/Downloads /библиотека/Downloads
все скачанные мпз 128 будут найдны мпд и добавлены в библиотеку

я так юзаю

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

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

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

Что может быть?

[michael@rufi ~]$ mpc add file:///home/michael/msc/Neurot\ Records/Steve\ Von\ Till/As\ The\ Crow\ Flies/Twice_Born.mp3 
error adding file:///home/michael/msc/Neurot Records/Steve Von Till/As The Crow Flies/Twice_Born.mp3: Access denied

Права файла выставлял на 777, тоже самое.

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

этот «знаток» не вкурсах, что мпд работает только с файлами из своей библиотеки
я выше расписал что надо делать

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

этот «знаток» не вкурсах, что мпд работает только с файлами из своей библиотеки

Внезапно, не только.

В конфиге UNIX socket надо указать.

# If the address is a path, then a UNIX domain socket will be
# created instead of listening on a TCP port.
#
bind_to_address                 "/путь/до/cокета"

Я добавляю любые файлы(из базы и нет) в плейлист таким скриптом

#!/usr/bin/python
# coding: utf-8
import mpd
from sys import argv, exit
from socket import error as SOCKerr


PORT = порт
HOST = хост
MUZIC = "/директория/музыки"
SOCKET = "/путь/до/cокета"
##########################################
CLIENT = mpd.MPDClient()
SONG = argv[1]

try:
	CLIENT.connect(HOST, PORT)
except (SOCKerr, mpd.MPDError):
	print "No connection to MPD, exiting!" 
	exit(1)

try:
	PATH = SONG.replace(MUZIC, '')
	CLIENT.add(PATH)
except mpd.CommandError:
	CLIENT._reset()
	CLIENT.connect(SOCKET, PORT) 
	CLIENT.add("file://%s" % SONG)
	PATH = SONG

if CLIENT.status()['state'] != "play":
	PLAY = CLIENT.playlistfind('file', PATH)
	CLIENT.playid(PLAY[0]['id'])
он у меня как дефолтное приложение для открытия музыкальных файлов.)

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

Ну укажи в конфиге желаемое расположение этого сокета, не помню делает ли он его сам(?), если нет - создать при помощи mkfifo.Права на доступ к нему должны быть соответствующие.

http://ru.wikipedia.org/wiki/Unix_domain_socket

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

Ну укажи в конфиге желаемое расположение этого сокета, не помню делает ли он его сам(?), если нет - создать при помощи mkfifo.Права на доступ к нему должны быть соответствующие.

Вики читал, но там нет расположения конфига.

И не совсем понятно, что за путь должен быть?

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

Конфиг /etc/mpd.conf

Путь любой, т.е. например у меня mpd настроен на работу испод юзера и всякие его файлы лежат в ~

# The address and port to listen on.
#
bind_to_address                 "127.0.0.1"
port                            "6600"
#
# If the address is a path, then a UNIX domain socket will be
# created instead of listening on a TCP port.
#
bind_to_address                 "/home/username/.ncmpcpp/mpd/sock"

А, помню ещё в PATH его потребовалось указать, это в ~/.profile или ~/.bash_profile в зависимости от дистра

PATH=$PATH:/home/username/.ncmpcpp/mpd/sock

nitz ★★
()
Ответ на: комментарий от nitz
[michael@rufi ~]$ cat ~/bin/mpd_add.py
#!/usr/bin/python
# coding: utf-8
import mpd
from sys import argv, exit
from socket import error as SOCKerr


PORT = "6600"
HOST = "127.0.0.1"
MUZIC = "/home/michael/msc"
SOCKET = "/home/michael/.mpd/sock"
##########################################
CLIENT = mpd.MPDClient()
SONG = argv[1]

try:
	CLIENT.connect(HOST, PORT)
except (SOCKerr, mpd.MPDError):
	print "No connection to MPD, exiting!" 
	exit(1)

try:
	PATH = SONG.replace(MUZIC, '')
	CLIENT.add(PATH)
except mpd.CommandError:
	CLIENT._reset()
	CLIENT.connect(SOCKET, PORT) 
	CLIENT.add("file://%s" % SONG)
	PATH = SONG

if CLIENT.status()['state'] != "play":
	PLAY = CLIENT.playlistfind('file', PATH)
	CLIENT.playid(PLAY[0]['id'])


[michael@rufi ~]$ /home/michael/bin/mpd_add.py /home/michael/msc/va_-_melancholy_of_autumn_vol.2.mp3
  File "/home/michael/bin/mpd_add.py", line 19
    print "No connection to MPD, exiting!" 
                                         ^
SyntaxError: invalid syntax
Deleted
()
Ответ на: комментарий от Deleted

Через mpc-то добавляется теперь?

invalid syntax - странно, лоркод вроде не портит, у меня работает скопированное отсюда. Cмеси пробелов и табов тоже не вижу.

А версия питона какая?В 3 print изменён, так должно быть

print("No connection to MPD, exiting!")

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

Решил проблему использованием python2. Спасибо.

// На 3 питоне с python3-mpd пол экрана ошибок.

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

Если есть еще какие - нибудь полезные скрипты для mpd, то буду очень рад, если ты их выложишь.

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

Ну, думаю будет полезным этот поисковый скрипт; ищет инфу, тексты, обложки

#!/bin/bash

if [ "$(mpc|cut -d\  -f2)" != "n/a" ]; then
case "$1" in
"-G" ) firefox "http://www.google.ru/search?as_qdr=all&num=20&q=$(mpc --format %artist%+%album%|sed 's/ /+/g;q')&hl=en&newwindow=1&safe=off&complete=0&gbv=1&um=1&ie=UTF-8&tbm=isch&source=og&sa=N&tab=wi" & ;;
"-Y" ) firefox "http://www.youtube.com/results?search_query=$(mpc --format %artist%|sed 's/ /+/g;s/$/\&search_type=\&aq=f/;q')" & ;;
"-W" ) firefox "http://lyrics.wikia.com/lyrics/$(mpc|sed 's/[ ][a-z]/\U&/g;s/ - /:/;s/ /_/g;q')" & ;;
"-L" ) firefox "http://www.lastfm.ru/music/$(mpc --format %artist%|sed 's/ /+/g;q')" & ;;
"-w" ) firefox "http://en.wikipedia.org/wiki/$(mpc --format %artist%|sed 's/ /_/g;q')" & ;;
  "" ) echo "Use keys: -G for covers in Google, -Y for Youtube, -W LyricWiki, -L LastFM, -w Wikipedia" ;;
esac
exit 0
else
echo "MPD not running, exiting."
exit 1
fi

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