Random 插入随机视频代替实际文件名

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

我正在寻找一种方法来修改以下脚本,以便在运行脚本时在/mnt/usb文件夹中播放随机视频。文件夹中的视频将每天更改,但都是mov文件类型。在视频结束时,它返回到我们的幻灯片

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中有一个视频,应该可以播放。