1
5

More than 3 years have passed since last update.

LibreELECで電源ON時に外付けメディアを自動再生

Posted at

仕事柄、RaspberryPiをメディアプレーヤーとして使用する機会が多いのですが、ふと自動起動した際にUSBメモリを読んで自動再生させたいなと思ったので、メモです。

起動時のスタートアップスクリプト

autostart.shファイルを用意することで可能です。

/storage/.config/autostart.sh
$ nano /storage/.config/autostart.sh

ここにシェルスクリプトを書いていきます。

/storage/.config/autostart.sh
#!/bin/sh

(
# 起動を待つ
sleep 20

MEDIA=`ls /media/ | cut -d" " -f1`

if [ "" = $MEDIA ]; then

  echo "no such media."

else

  TYPE=`cat /media/${MEDIA}/type.txt`

  if [ "video" = $TYPE ]; then

    echo "play ${TYPE}"

    kodi-send --action="XBMC.PlayMedia(/media/${MEDIA}/)"
    kodi-send --action="XBMC.PlayerControl(repeatall)"
    kodi-send --action="Action(Fullscreen)"

  elif [ "image" = $TYPE ]; then

    echo "play ${TYPE}"

    kodi-send --action="SlideShow(/media/${MEDIA}/)"           

  fi

fi
)&

解説

このスクリプトは起動処理をブロックするため、全体を()で囲み、最後に&をつけることでバックグラウンドプロセス化しています。

まずは、20秒間、LibreELECが起動するのを待ちます。

sleep 20

ls /mediaでディレクトリを一覧し、pipeでつなぎ、cutでスペース区切りを配列に変換したのちに、配列の頭の値を取得することでパスを取得します。

MEDIA=`ls /media/ | cut -d" " -f1`

動画と静止画、それぞれニーズがあるので、type.txtをUSBメモリに配置してそのファイルの中身を確認します。

TYPE=`cat /media/${MEDIA}/type.txt`

ファイルの中身がvideoなら、動画を再生
ファイルの中身がimageなら、静止画をスライドショー

あとはシンプルなシェルスクリプトです。

kodi-send

LibreELECやOSMC等のKodiプラットフォームではkodi-sendというコマンドを使用してコントロールできます。

動画再生

/media/${MEDIA}/ディレクトリにあるメディアファイルを再生します。

$ kodi-send --action="XBMC.PlayMedia(/media/${MEDIA}/)"

すべてをリピート再生します。

$ kodi-send --action="XBMC.PlayerControl(repeatall)"

動画再生をフルスクリーンにします。

$ kodi-send --action="Action(Fullscreen)"

静止画スライドショウ

$ kodi-send --action="SlideShow(/media/${MEDIA}/)"

autoexec.py

autoexec.pyを使って、pythonで起動スクリプトを書くこともできるそうです。
https://kodi.wiki/view/Autoexec_Service

リンク

LibreELEC Startup & Shutdown
ソースコード(GIST)

1
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
5