min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

RaspberryPi3で簡易音楽プレイヤーを作る ver1(テレビでアルバム画像を表示しつつ曲再生)

テレビにアルバム画像を表示しながら曲を流しっぱにしたい。

 

君はロックを…を流して

f:id:min117:20191109232513j:plain

再生が終わると画像が変わって

 

ワタリドリが流れる。

f:id:min117:20191109232516j:plain

 

2つの機能が必要だ。

・テレビ画面に画像を映し出す機能 → fbiコマンドで実現

・テレビ画面で音楽を再生する機能 → omxplayerコマンドで実現

 

min117.hatenablog.com

 

 

 

 

できた。使い方はこんな感じ。

 

まずはMacのコンソールから

f:id:min117:20191110084958p:plain

sshでRaspberryPi3に接続し

f:id:min117:20191110084921p:plain

今回作るスクリプトを叩くと

$ ./mymp3pi.sh

f:id:min117:20191110085255p:plain

曲が順に再生されていく。

f:id:min117:20191109232507j:plain

f:id:min117:20191109232513j:plain

f:id:min117:20191109232516j:plain

ソースコード内で「この曲にはこの画像」という指定(アルバム画像指定)をするのが面倒。singerの名前を判断して自動で画像を拾うようにしたい。

 

singerの画像も、フォルダの中にあらかじめ用意するんじゃなくて、singer名から自動でGoogle画像検索される画像を表示させるようにすれば(毎回ランダムなカバー画像が出て)面白そう。次回以降で試す。

min117.hatenablog.com

 

今回のソースはこれ。

$ vim mymp3pi.sh

f:id:min117:20191110085812p:plain

26行目

・再生する曲を指定する(for文の引数に食わせる)

・ここを自由に入力できるように改造したい

スクリプトの引数を食わせてもいいし

・ランダム指定でいろんな曲が流れるようにもできそう。

 

33行目

・fbiコマンドで画像を表示している。

min117.hatenablog.com

 

36行目

・omxplayerで曲を再生している。

・再生している曲をリモコンで一時停止したり戻したりできるようにしたい。

・以前作ったmkfifoでのリモコン操作でなんとかなりそう。

min117.hatenablog.com

 

コピペ用

  1 #!/bin/bash

  2 

  3 shopt -s expand_aliases

  4 source ~/.bashrc

  5 

  6 # shopt について

  7 # https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html

  8 

  9 # 異常時にちゃんと止まるスクリプト

 10 # http://fj.hatenablog.jp/entry/2017/05/20/192431

 11 #set -eu -o pipefail

 12 #trap 'echo "ERROR: line no = $LINENO, exit status = $? > &2; exit 1' ERR

 13 

 14 mydate=`date +"%Y%m%d_%H%M%S"`

 15 mypath=`pwd`

 16 

 17 echo $mydate

 18 

 19 # http://d.hatena.ne.jp/nattou_curry_2/20091103/1257262803

 20 # Bashを使うなら理解しておきたいアルゴリズム - 抽出・ソート・結合・集計

 21 

 22 # 関数

 23 # function multi() { echo "数値を入力"; read ans; for i in $(seq 1 10); do echo "$i"; echo $*1; done; }

 24 

 25 

 26 for i in aimyon*mp3 Alex*mp3

 27 do

 28     echo "$i"

 29 

 30     sudo kill -9 $(ps aux | grep -v grep | grep player | awk '{print $2}')

 31     sudo kill -9 $(ps aux | grep -v grep | grep fbi | awk '{print $2}')

 32 

 33     sudo fbi -T 1 -d /dev/fb0 -noverbose "$i".jpg

 34     # sleep 3

 35 

 36     omxplayer "$i"

 37     # sleep 5

 38     echo '--------------------'

 39 done

 

*1:ans**

    i