Random 插入随机视频代替实际文件名
我正在寻找一种方法来修改以下脚本,以便在运行脚本时在/mnt/usb文件夹中播放随机视频。文件夹中的视频将每天更改,但都是mov文件类型。在视频结束时,它返回到我们的幻灯片Random 插入随机视频代替实际文件名,random,xbmc,Random,Xbmc,我正在寻找一种方法来修改以下脚本,以便在运行脚本时在/mnt/usb文件夹中播放随机视频。文件夹中的视频将每天更改,但都是mov文件类型。在视频结束时,它返回到我们的幻灯片 import xbmc import time import os def PlayAndWait(mediafile): xbmc.executebuiltin("PlayMedia(%s)" % mediafile, True) while xbmc.Player().isPlaying(): time
import xbmc
import time
import os
def PlayAndWait(mediafile):
xbmc.executebuiltin("PlayMedia(%s)" % mediafile, True)
while xbmc.Player().isPlaying():
time.sleep(1.0)
if os.path.isfile ("/mnt/usb/videoenter.mov"):
PlayAndWait("/mnt/usb/videoenter.mov")
xbmc.executebuiltin("SlideShow(/mnt/usb/slideshow)")
使用
glob.glob
获取匹配'/mnt/usb/*.mov'
的文件列表,然后使用random。选择
从中选择一个:
import xbmc
import time
import os
import glob
import random
def PlayAndWait(mediafile):
# escape characters and quote if needed as xbmc requires
if '"' in mediafile:
mediafile = mediafile.replace('"','\\"')
if any(x in mediafile for x in ",() "):
mediafile = '"' + mediafile + '"'
xbmc.executebuiltin("PlayMedia(%s)" % mediafile, True)
while xbmc.Player().isPlaying():
time.sleep(1.0)
files = glob.glob('/mnt/usb/*.mov')
if not files:
filename = random.choice(files)
if os.path.isfile(filename):
PlayAndWait(filename)
xbmc.executebuiltin("SlideShow(/mnt/usb/slideshow)")
我运行的脚本如上所示,我只得到幻灯片。我已经验证了视频位置和mov格式。这个脚本以前对你有用吗?@user3380826我是根据你的脚本写的。我无法测试它。我也不能告诉你为什么它不适合你。如果您的脚本起作用,我会声明我的脚本起作用。@user3380826但可能您有一些文件的名称中包含字符,需要在插入到
“PlayMedia(%s)”%mediafile
中之前进行转义。查看文件名可能您的文件名带有逗号,
或引号“
其中的字符。这些需要转义。@user3380826我已经更新了脚本,以正确引用传递给xbmc的文件名。我刚刚运行了这个脚本,它直接进入幻灯片而不播放视频。我在/mnt/usb/video0.mov中有一个视频,应该可以播放。