5

Какой самый простой способ запустить XBMC и воспроизвести фильм с определенного момента времени?

Очевидно, что не так много параметров командной строки (ref), и скрипты XBMC python, похоже, предназначены для запуска изнутри XBMC после его запуска (ref). Кроме того, я хочу иметь возможность воспроизводить файлы, которые не обязательно находятся в медиа-библиотеке XBMC.

1 ответ1

2

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

Сначала вам нужно настроить XBMC для автоматического выполнения скрипта при запуске. Для этого нам нужно создать файл с именем autoexec.py в %appdata%\XBMC\userdata .
Обычно это C:\Users\<username>\AppData\Roaming\XBMC\userdata .
Не беспокойся Вам не нужно "учить" Python для этого. Просто скопируйте код в этот файл.

Создайте там autoexec.py :

import xbmc
import xbmcgui
import os

class Main:
  def __init__(self):
    playlist = xbmc.PlayList( xbmc.PLAYLIST_VIDEO )
    playlist.clear()

    try:
      file = os.getenv('XBMC_PLAY','')
      jump = os.getenv('XBMC_JUMP','0')
    except:pass
    if os.path.isfile(file):

      xbmc.executebuiltin('Notification(Playing '+file+',Jump to '+jump+',5000)')
      playlist.add(file)

      try:
        xbmc.Player().play( playlist)
      except:pass

      try:
        xbmc.Player().seekTime(int(jump))
      except:pass

m = Main()

Я настроил скрипт отсюда (thnx @root) и сделал так, чтобы он проверял переменные вашей среды на XBMC_PLAY и XBMC_JUMP . Таким образом, мы можем вызвать XBMC из пакетного файла, и он будет воспроизводить файл.

Опять не волнуйся. Если эти переменные среды не существуют, XBMC будет работать как обычно.

Далее нам нужно создать пакетный файл, чтобы установить правильные значения и запустить XBMC.
XBMC_PLAY - ваш файл фильма, а XBMC_JUMP - секунды, в которые можно перейти (это может быть 0).

Самый простой будет:

set XBMC_PLAY=<YOUR_MOVIE>
set XBMC_JUMP=<SECONDS_TO_JUMP>
"C:\Program Files(x86)\XBMC\XBMC.exe"
set XBMC_PLAY=
set XBMC_JUMP=

Но так как я перфекционист;) я создал более сложную партию, которую вы можете использовать для добавления файла, и она будет запрашивать "минуты прыжка". Также можно назвать этот пакетный файл как
xbmc_run moviefile.avi 15 напрямую.

Вы даже можете создать ассоциацию файлов для .avi т.д., Чтобы запустить этот пакетный файл вместо другого проигрывателя :)

Создать xbmc_run.bat

@echo off
if "%1"=="" goto usage
if not exist %1 goto filenotfound

::-----------------------------------------------
:: set-up temp-variable for Program Files
::-----------------------------------------------
set ProgFiles86=%ProgramFiles(x86)%
if not "%ProgFiles86%"=="" goto win64
set ProgFiles86=%ProgramFiles%
:win64

::-----------------------------------------------
:: get %2 parameter. if not given ask for seconds
::-----------------------------------------------
set jump=%2
if "%jump%"=="" set /p jump="Jump to minute: "
set /a jump*=60

::-----------------------------------------------
:: set user-environment variables and start xbmc
::-----------------------------------------------
:play
set XBMC_PLAY=%1
set XBMC_JUMP=%jump%
echo Starting %XBMC_PLAY% and jump to %XBMC_JUMP% seconds
"%progFiles86%\XBMC\XBMC.exe"
set XBMC_PLAY=
set XBMC_JUMP=
goto :eof

:usage
echo Usage: %0 movie [jump]
exit/b 1

:filenotfound
echo File %1 not found
exit/b 1

Здесь прекрасно работает. Я использовал XBMC v12.2 "FRODO". Если вам нужна помощь, дайте мне знать.

Редактировать: мне только что пришло в голову, что просьба прыгнуть в течение нескольких минут может быть более интуитивным, чем секунды (как я делал изначально). Поэтому я изменил код, указанный выше, чтобы задать минуты прыжка и пересчитать в секунды для XBMC.

Если вы хотите перейти в считанные секунды назад, вы можете изменить эти 2 строки:

if "%jump%"=="" set /p jump="Jump to second: "
set /a jump*=1

Просто перетащите файл фильма в этот пакетный файл, введите минуты перехода (или просто введите, если их нет), и все готово :)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .