2015-11-09 8 views
0

Это мой первый вопрос о переполнении стека, мне очень жаль, если это было повторено. Я искал последний месяц или около того для некоторого кода, чтобы создать случайный плейлист, который будет запускаться каждую ночь на моем малине Pi (Raspbian) с помощью Python. Но не повезло!Код на Python для создания плейлиста из нескольких папок

Плейлист будет состоять из контента из 2 папок. Музыка в 1 (около 200 файлов) Объявления/Jingles (5 файлов) в другой. Я хочу иметь возможность создавать плейлист (формат m3u), который бы каждый день произвольно определял музыку, но все равно имел бы рекламный/джингл, играющий каждые 5 песен. Поэтому единственное, что нужно повторять каждый день, это реклама/джинглы.

В настоящее время я использую Kodi для музыкального проигрывателя, так же как и фильмы.

Есть ли кто-нибудь, кто сможет мне помочь?

+0

Вы, вероятно, понадобится, чтобы показать некоторые попытки в этом, чтобы получить кого-то, чтобы помочь вам. Вы можете посмотреть здесь, как задать хороший вопрос: http://stackoverflow.com/help/how-to-ask –

ответ

0

Для других, желающих это сделать, я нашел хороший способ обойти это с помощью bash. Получил это от: https://www.raspberrypi.org/forums/viewtopic.php?f=38&t=63568

#!/bin/bash 
if [ -f /home/pi/music.lock ]; then 
echo "Lock Exists, exiting" 
exit 0 
fi 
touch /home/pi/music.lock 
target="21" 
cur=$(date '+%H') 
while [ $target != $cur ] 
do 
cd /home/pi/music 
mpg321 "$(ls *.mp3 | shuf -n1)" 
mpg321 "$(ls *.mp3 | shuf -n1)" 
mpg321 "$(ls *.mp3 | shuf -n1)" 
mpg321 "$(ls *.mp3 | shuf -n1)" 
mpg321 "$(ls *.mp3 | shuf -n1)" 
cd /home/pi/messages 
mpg321 "$(ls *.mp3 | shuf -n1)" 
cur=$(date '+%H') 
done 
rm /home/pi/music.lock 
0

Надеюсь, это немного поможет. Не слишком уверен в музыкальном проигрывателе. Я предполагаю, что у вас есть способ открыть файл и воспроизвести его. Список файлов, обозначенных в сегодняшнем плейлисте, можно повторить по необходимости.

from os import listdir 
from os.path import isfile, join 
music_file_path = "music" 
jingle_file_path = "ads/jingles" 
jingle_files = [ f for f in listdir(music_file_path) if isfile(join(music_file_path,f)) ] 
music_files = [ f for f in listdir(jingle_files) if isfile(join(jingle_files,f)) ] 

music_files.shuffle() 
jingle_files.shuffle() 

todays_playlist = [] 
for i in range(len(music_files)): 
    todays_playlist.append(music_files[i]) 
    if i % 5 == 0: 
     todays_play_list.append(jingle_files[ (i // 5) % len(jingle_files)]) 
+0

Я бы также добавил, что (1) файлы 'm3u' имеют относительно простой формат (см. Википедию) , поэтому теперь не должно возникнуть проблемы с его созданием. (2) Универсальный подход к открытию файла в связанном приложении в Python - 'import webbrowser; webbrouser.open (имя_файла) '. – Vovanrock2002

+0

Большое спасибо за ответ. К сожалению, код не работает, я чрезвычайно новичок в Python, поэтому мне очень жаль, если это распространенная проблема. Я получаю сообщение об ошибке в music_files = TypeError: Невозможно преобразовать объект 'list' в str неявно. – Michael