Здравствуйте, дорогие друзья. Хочу сделать из своей Малины мультимедийный центр. Дано: RaspberryPi 2 tft-экран от Waveshare Задача - играть музыку в фоне и запускать потоковое видео при необходимости, при этом ставя музыку на паузу и продолжая проигрывание после того, как видео проиграло. В качестве ОСи у меня Raspbian с окружением XFCE, ну а для информативности я развернул Conky на всю полезную площадь экрана. Собственно - 99% работы уже проделано. Видео запускаю через omxplayer при помощи расширения в Chrome. Музыка играет в фоне через audacious, информация о треке передаётся на Conky. Здесь - видео, как оно работает. (Да, отклик при запуске видео не маленький, но это обусловлено малой мощностью самой Малины и работе скриптов для запуска (в фоне происходит обновление youtube-dl) Теперь - к сути! Хочется чтобы обложка альбома отображалась во время проигрывания трека (там, где сейчас изображение диска). Как это проще всего реализовать я не знаю. Может быть у кого нибудь есть идеи или готовые решения, как это сделать проще всего. Спойлер: .conkyrc Код (Bash): # Включите для использования xtf use_xft yes # Шрифт xtf для использования xftfont Bitstream Vera Sans Mono:size=8 # Если yes - Conky будет запущен в фоне background yes xftalpha 0.1 # Интервал обновления в секундах update_interval 0.25 # Количество обновлений, после которых Conky выключится. 0 = работает постоянно total_run_times 0 # Создавать собственное окно или нет own_window yes own_window_type desktop # Делает фон полностью прозрачным own_window_transparent yes own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager double_buffer yes minimum_size 750 3 maximum_width 750 # Включает отображение тени draw_shades yes # Включает отображение окантовки draw_outline no # Включает отображение границы вокруг текста draw_borders no # Включает отображение границы вокруг графиков draw_graph_borders no # Цвет по умолчанию и цвет границы default_color grey # Цвет тени от текста и границы default_shade_color black # Цвет окантовки default_outline_color green #Расположение окна (left, right, top) alignment top_middle # Отступ в пикселях от края экрана gap_x 5 gap_y 5 # Выключать буфер из использоваемой памяти no_buffers yes # Включите для отображения текста в верхнем регистре uppercase no cpu_avg_samples 2 net_avg_samples 1 override_utf8_locale yes use_spacer none default_bar_width 30 # >>>>>>>>>>>>>>>>>>>>>>> TEXT ${font Arial:size=10}${color #b8bdda}Время работы: ${color white}${uptime}${color} | Ip adress: ${color white}${addr eth0} | Вн. IP:${color white}${execi 10800 wget http://checkip.dyndns.org/ -q -O -|grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>'} $alignr Net traffic: ${color red} ⬆:${upspeed eth0}${color green} ⬇: ${downspeed eth0} ${color DimGray} # Процессор ${font Arial:bold:size=10}${color #b8bdda}Процессор: $alignr Нагрузка $cpu % | Температура: ${acpitemp}°С $font${color DimGray}CPU1 ${cpu cpu1}% ${cpubar 6,120 cpu1} | CPU2 ${cpu cpu2}% ${cpubar 6,120 cpu2} | CPU3 ${cpu cpu3}% ${cpubar 6,120 cpu3} | CPU4 ${cpu cpu4}% ${cpubar 5,100 cpu4} ${font Arial:bold:size=10}${color #b8bdda}Оперативная память ${color DarkSlateGray}${hr 2} $font${color DimGray}MEM $alignc $mem / $memmax $alignr $memperc% ${membar 3} $font${color DimGray}Файл подкачки (SWAP) $alignc $swap / $swapmax $alignr $swapperc% ${swapbar 3} ${font Arial:bold:size=10}${color #b8bdda}Мониторинг дискового пространства ${color DarkSlateGray}${hr 2} ${font Arial:bold:size=2} ${if_mounted /home/pi/music}${font Arial:bold:size=12}${color DimGray}Root: ${fs_bar 5,255 /} ${font Arial:bold:size=12}${fs_free_perc /} % | ${color DimGray}Music: ${fs_bar 5,258 /home/pi/music} ${fs_free_perc /home/pi/music} %${else} ${font Arial:bold:size=12} ${color DimGray}Root: ${fs_bar 5,635 /} ${font Arial:bold:size=12}${fs_free_perc /} % ${endif} ${font Arial:size=2} ${hr} # Аудиоплеер ${if_running audacious} ${font Arial:size=12}${color}${color1}Сейчас играет: ${color lime}${font Arial:bold:size=14}"${exec audtool --current-song}"${font Arial:size=12}${color1} ${scroll 200 1 Исполнитель: ${color}${exec audtool --current-song-tuple-data artist} | ${color1}Альбом: ${color}${exec audtool --current-song-tuple-data album}} (${exec audtool --current-song-tuple-data year}) ${color}${exec audtool --current-song-output-length} ${execbar 6,595 expr $(audtool --current-song-output-length-seconds) \* 100 / $(audtool --current-song-length-seconds)} ${exec audtool --current-song-length}${image ~/Изображения/disk.png -p 685,220 -s 60x60} ${else}${font Arial:bold:size=12}${color silver}Ничего не воспроизводится ${endif}${hr} ${font Arial:bold:size=10}${color}TOP PROCESSES ${color DarkSlateGray}${hr 2} ${color DimGray}$font${top_mem name 2}${alignr}${top mem 2} % $font${top_mem name 3}${alignr}${top mem 3} % $font${top_mem name 4}${alignr}${top mem 4} % $font${top_mem name 5}${alignr}${top mem 5} % $font${top_mem name 6}${alignr}${top mem 6} % $font${top_mem name 7}${alignr}${top mem 7} % $font${top_mem name 8}${alignr}${top mem 8} % Сейчас картинку выводит вот это: Код (Text): ${image ~/Изображения/disk.png -p 685,220 -s 60x60}
Чтобы не тратить ресурс флешки постоянным перезаписыванием постера в определённый файл, который и будет отображаться в Conky есть следующая идея: Создать где-то в home директории каталог для хранения постеров. (это я знаю как сделать) Экспортировать в такой каталог файлы обложек в формате "Исполнитель-альбом-год.jpg" (это я знаю как сделать) Каким-то образом задать в .conkyrc переменную cover, которая будет подставлять вместо себя путь к нужной обложке. (Вот тут - беда. Не силён в написании таких сценариев.) Если что: За вывод исполнителя отвечает вот это За вывод альбома отвечает вот это За вывод года альбома отвечает вот это