0

这是我关于 Stack Overflow 的第一个问题,如果再次出现,我感到非常抱歉。上个月左右,我一直在寻找一些代码,以创建一个随机播放列表,每晚使用 Python 在我的 Raspberry Pi (Raspbian) 上运行。但是没有运气!

播放列表将由 2 个文件夹中的内容组成。音乐在 1 个(约 200 个文件)广告/叮当声(5 个文件)在另一个。我希望能够创建一个播放列表(m3u 格式),每天随机播放音乐,但仍然每 5 首歌曲播放一个广告/广告。所以每天唯一应该重复的就是广告/广告。

我目前正在为音乐播放器运行 Kodi,因为我也想要电影。

有没有人可以帮助我解决这个问题?

4

2 回答 2

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 回答
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 回答