mini9をMedia Server化する。

ちょっとしたフォーラムや外出先でしか、mini9を使う機会がなくもったいないので、せっかくOSがUbuntuでAtomという省エネ志向なら余っているUSBHDDを繋いでメディアサーバー化しようというもくろみ。

外付けHDDの認識

sambaで普通にマウントすると、ストリーミングする際パーミッションでreadできない。(apacheの権限を変更すればできると思うけど…)
なので、fstabに下記みたいな感じで追加する。

/dev/sdb1       /media/HD-PFU2  vfat    defaults,umask=000      0 0

phpでmp3タグ認識

pear install MP3_Id

http://d.hatena.ne.jp/hiratake55/20090606/1244276112を参考にした…が、ディレクトリまるごと認識させようとするとunpack系のエラーが出る。 まぁ、別にいいや…

Rubyでmp3タグの認識

http://d.hatena.ne.jp/tashen/20080629/1214752266 http://q.hatena.ne.jp/1075391835

引用

Rubyのpack/unpackは…

半年以上も前の質問にコメントを書いても、もう質問者さんは見ていないでしょうけど、ググってココに辿り着いた私の問題解決にヒントを与えてくれたので、感謝を込めてアドバイスを置いておきます。

「unpack(”p”), unpack(”P”) は、pack の結果からしか unpack できません。」という制約があります。(自分でpackしたものしかunpackできない)

このAPI(mp3infp_GetValue)の場合はRuby側で確保したバッファをpackして渡したポインタではなく、DLL側で確保されたバッファへのポインタが返ってくるので、それを文字列に戻すときにunpackは使えないのです。

したがって、「char**型を実体に戻す」には、以下のようにRuby側に用意した別のバッファに自分でコピーして取り出すしかないようです。

lstrlen = Win32API.new(’kernel32’, ’lstrlen’, ’P’, ’L’)
lstrcpyn = Win32API.new(’kernel32’, ’lstrcpyn’, ’PPL’, ’P’)

p buf # => ”h¥244¥020¥003”
pstr = buf.unpack(’L’)[0] #=> 51422312
len = lstrlen.call(pstr) #=> 14
time = ’ ’ * (len+1)
lstrcpyn.call(time, pstr, len+1)
time.chop!
p time #=> ”4:37 (277sec)”

WIRELESS

ワイヤレスな環境に憧れる。
以前はプロジェクタに5.1chのスピーカーをつけてDVD鑑賞とかやっていたけど手軽に見るのにはしんどくて、5.1chのスピーカーはコードが超絶に邪魔になる。 今は、昔ほど視覚メディアを重要視しなくなってラジオなどの聴覚メディアの割合が増えてきた(不思議と音楽の需要は増えていない)ので手軽にどこでも自分の聞きたい場所で聞きたいものを聞ける環境がほしい。
手軽っていうのはお金をかけないってのももちろん含むorz

スピーカー

PSP-CS500WSこれ電源不要で使えるのが凄くよい。