0

これはスタック オーバーフローに関する私の初めての質問です。これが繰り返されていたら、大変申し訳ありません。Pythonを使用してRaspberry Pi(Raspbian)で毎晩実行されるランダムなプレイリストを作成するために、先月ほどコードを探していました。しかし、運がありませんでした!

プレイリストは、2 つのフォルダーのコンテンツで構成されます。1曲に音楽(約200ファイル)、もう1曲に広告/ジングル(5ファイル)。毎日音楽をランダム化しながら、5 曲ごとに広告/ジングルを再生するプレイリスト (m3u 形式) を作成できるようにしたいと考えています。したがって、毎日繰り返す必要があるのは、広告/ジングルだけです。

映画も欲しいので、現在音楽プレーヤー用にKodiを実行しています.

これで私を助けることができる人はいますか?

4

2 に答える 2

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
于 2015-11-16T22:56:46.270 に答える
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)])
于 2015-11-09T05:51:22.693 に答える