2004-09-12
掲示板
どこかから無料で貰ってくるだけのくせして文句をいうのもなんだけど、どこのCGIも多機能を指向していて、どうもごたっとしている。不要な機能を切ればいいのだけどいまいち面倒で、それなら自分で作ったほうが早いような気がする<そんな暇ないだろ。
ということで、俺が欲しい掲示板。
- 書き込み時に必要なのはハンドル、記事のみ
- 削除キーはいらない
- 管理者権限による記事の削除
- スタイルシートの読み込み可能
- 携帯から参照、書き込みできる(最低限auのWAP2.0からできれば可)
復旧作業(2)
yahooキャッシュから引き上げ。tDiary移行後のデータはほぼ復旧できました。
しかし7月分のキャッシュが全然見当たらないのだけど、そんな変なことを書いてたかなぁ。見当たらない部分で思いつくのは、件考とスチームボーイの感想を書いた日ぐらいだけど。
VSEXCC
↑ヴァンパイアセイヴァーEXカプコンコレクションの略だ。←わかるかよ。
最近うちの近所のゲーセンにバンパイアセイヴァー2(?)があって、ちょっとはまっていたのだけど、とうとうなくなってしまったので探し中。
掲示板(3)
tDiaryを使ってるくせにRubyの実装をあたるのを忘れてるのはなぜかっ。ということで、RuBBSを導入することにしました。
2014-09-12
LBT-PAR500AVを買った
いままでSONYのMW600を使用していたのだけど、動画再生時の音声の遅延が大きく*1、apt-x対応だとどんなもんなのかなあということで、新しいBTレシーバを探していた。走るときに便利そうということで、ボックスレスタイプも検討したのだけど、単純に高いのと、イヤフォンが壊れた時に交換できないのとで今回は見送り。
MW600では曲名表示が決め手だったんだけど、Androidでの音楽再生環境をJust Playerに移行したことで無意味な機能になっていたので*2、そこは妥協。apt-x対応かつボックスタイプで4,000円をきるお手軽価格だったので購入した。
購入しての第一印象は、思ったより一回り大きくて質感がちょっとチープ。まあ値段なりという感じではある。HTL21はNFCによるペアリングには対応していなかったので、普通にシンプルペアリングで接続。apt-xの効果はどうかというと、音楽を再生した時の最初の出音が早くなり、動画でもリップシンクが違和感がほとんど無いレベルまで合うようになっていた*3。音質に関しては正直なところMW600とくらべて違いがあるようには思えない。こまかく聴き比べれば違うのかもしれないけど、モバイル機器だしなあということで気にしないことにした。
あとはJust PlayerがBluetoothの再生ボタンに対応してくれれば理想の環境になるんだけど。
JUST PLAYERでBluetoothのPLAY/PAUSEボタンが効くようにする
結論から言うと、このアプリを入れてボタンの転送先をJUST PLAYERにすればOK。
以降androidでのAVRCPの関するメモ書き。 上記のソフトは送信先を決めているだけで、キーコードは変えてないんじゃないかなあという疑問があって、さいわいどちらのソフトもコードが公開されているのでちょっと追いかけてみた。
まず、テストアプリを作成して、AVRCPで送信されてくるキーコードを確認。AndroidManifest.xmlでActivityにintent-filterを追加するとAVRCPのボタンを受信できる。
<intent-filter> <action android:name="android.intent.action.MEDIA_BUTTON"/> </intent-filter>
あとは、Activity.onKeyDownで受信。それによると、PLAY/PAUSEボタンを押すと、KeyEvent.KEYCODE_MEDIA_PLAY/KeyEvent.KEYCODE_MEDIA_PAUSEが交互に通知されている。
つぎに、MediaButtonRouterのコードをみてみると、KEYCODE_MEDIA_PLAYとKEYCODE_MEDIA_PAUSEは、KEYCODE_MEDIA_PLAY_PAUSEに変換していることがわかる。
public static int getAdjustedKeyCode(KeyEvent keyEvent) { int keyCode = keyEvent.getKeyCode(); if (keyCode == KEYCODE_MEDIA_PLAY || keyCode == KEYCODE_MEDIA_PAUSE) { keyCode = KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE; } return keyCode; }
一方、JUST PLAYERのソースでは、KEYCODE_MEDIA_PLAY_PAUSEのみをハンドリングしている。
(snip) switch (event.getKeyCode()) { case KeyEvent.KEYCODE_MEDIA_STOP: Logger.d("KEYCODE_MEDIA_STOP"); service.setAction(AppWidgetHelper.CALL_STOP); context.startService(service); break; case KeyEvent.KEYCODE_HEADSETHOOK: Logger.d("KEYCODE_HEADSETHOOK"); // break; case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE: Logger.d("KEYCODE_MEDIA_PLAY_PAUSE"); service.setAction(AppWidgetHelper.CALL_PLAY_PAUSE); context.startService(service); break; case KeyEvent.KEYCODE_MEDIA_NEXT: Logger.d("KEYCODE_MEDIA_NEXT"); service.setAction(AppWidgetHelper.CALL_FF); context.startService(service); break; case KeyEvent.KEYCODE_MEDIA_PREVIOUS: Logger.d("KEYCODE_MEDIA_PREVIOUS"); service.setAction(AppWidgetHelper.CALL_REW); context.startService(service); break; default: { Logger.d("不明なキーコード"); } } (snip)
ということで、結果的にMedia Button Routerを通すことで、PLAY/PAUSEが動作するようになっている。
とりあえず目的は達成したけど、Media Button Routerの動作も不安定なことがあるし*1、issueを投げたので対応してくれるといいなあ。
*1 再生はできるけど、ポーズができないことがある
kp [つっこみテスト]
kp [つっこみテスト2]