最近raspberry piで遊んでいる。
LEDに流したい文字列をPythonプログラムの引数に渡して文字を流すところまではできた。
次にやりたいのはmplayerで再生中の曲名とアーティスト名を流したい。
fifoという一時ファイル?に書き込むところまではなんとか。
それをxargsコマンドで?それともパイプ?この辺り分かってない。
インターネットラジオのメタデータ(曲のタイトル等)を表示するコマンドラインプログラムを作りたい
標準入力の値を引数として実行する
いろいろ試行錯誤した結果、もっと効率的なやり方ありそうですがひとまず自分の知識の範囲で。
mplayer再生時のデータをファイルに書き出して
mplayer -playlist http://yp.shoutcast.com/sbin/tunein-station.pls?id=497497 > log.txt
Pythonプログラムからログデータ読み込んでループ表示
#!/usr/bin/env python
import re
import sys
import max7219.led as led
import time
from max7219.font import proportional, SINCLAIR_FONT, TINY_FONT, CP437_FONT
from random import randrange
device = led.matrix(cascaded=4)
while 1:
f = open(“log.txt”)
lines2 = f.readlines()
f.close()
pattern = re.compile(“ICY Info: StreamTitle='(.+)'”)
for line in lines2:
m = pattern.search(line)
if m:
param = m.group(1)
device.brightness(1)
device.show_message(param, font=proportional(CP437_FONT))
time.sleep(10)