Inicie o XBMC a partir da linha de comando e reproduza o filme a partir do timepoint

5

Qual é a maneira mais fácil de iniciar o XBMC e reproduzir um filme a partir de um determinado momento?

Aparentemente, não há muitas opções de linha de comando ( ref ), e os scripts python do XBMC parecem para ser projetado para ser executado a partir do XBMC, uma vez lançado ( ref ). Além disso, quero poder reproduzir arquivos que não estão necessariamente na biblioteca de mídia do XBMC.

    
por pufferfish 12.11.2010 / 18:34

1 resposta

2

Acho que vou abordar esse ... Você pediu a maneira mais fácil de iniciar o XBMC ... Bem ... Aqui é a maneira mais fácil. Eu não estou dizendo que é uma maneira fácil, mas é a única maneira de executar um filme (que não está na sua biblioteca) e trabalha com o salto para minutos (ou segundos).

Primeiro você precisa configurar o XBMC para autoexecutar um script na inicialização. Para isso, precisamos criar um arquivo chamado autoexec.py in %appdata%\XBMC\userdata .
Normalmente isso é C:\Users\<username>\AppData\Roaming\XBMC\userdata .
Não se preocupe. Você não precisa "aprender" python para isso. Basta copiar o código para esse arquivo.

Crie autoexec.py lá:

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()

Eu ajustei o script de aqui (thnx @root) e fiz isso para que Verifique suas variáveis de ambiente para XBMC_PLAY e XBMC_JUMP . Dessa forma, podemos chamar o XBMC a partir de um arquivo batch e ele vai reproduzir o arquivo.

Novamente, não se preocupe. Se essas variáveis de ambiente não existirem, o XBMC funcionará normalmente.

Em seguida, precisamos criar o arquivo batch para definir os valores corretos e executar o XBMC.
XBMC_PLAY é seu arquivo de filme e XBMC_JUMP são os segundos para entrar (pode ser 0 ). / p>

O mais fácil seria:

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

Mas desde que eu sou um perfeccionista;) eu criei um lote mais elaborado que você pode usar para soltar um arquivo e ele pedirá os "jump minutes". Também é possível chamar esse batch file como xbmc_run moviefile.avi 15 diretamente.

Você pode até mesmo criar uma associação de arquivos para .avi etc ... para executar este batchfile em vez de outro player:)

Crie 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

Funciona perfeitamente aqui. Eu usei XBMC v12.2 "FRODO". Se você quiser ajuda para executá-lo, me avise.

Editar : Ocorreu-me que pedir para saltar em minutos pode ser mais intuitivo do que segundos (como fiz originalmente). Então eu mudei o código acima para perguntar o minuto de salto e re-calcular para segundos para o XBMC.

Se você quiser o salto em segundos, pode alterar essas duas linhas:

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

Apenas solte um arquivo de filme nesse arquivo em lote, insira o minuto de salto (ou apenas digite se nenhum) e você está pronto para ir:)

    
por 30.11.2013 / 22:47