涼しかったり暑かったり。とはいえだいぶ涼しくなってきてもう秋だな。
仕事がいまいち上手く進まないかわりにPeerCastStationがそれなりにやることあるので働いてる場合じゃねえ!という気分になっている。ちゃんと働かないと……。
模型は合体ムサシを作ってる。アオシマの。あー今度アニメやるやつねーとかよく言われるが違うんだ、メガトン級ムサシは全然関係ない。 からくり剣豪伝ねーとも言われたがムサシロードも関係ない。てか今プラモねえだろそれ!
あんましっかり色塗るようなもんでもないのでフレーム部分だけちょっと暗めにして、あとはウェザリングカラーでウォッシングすれば落ちついた感じになってくれそうな気がする。そんなもんでいいでしょう。女の子の方はちょこちょこ塗りたいところあるけども、まあちょこちょこと。
ブラウザでのHLS再生をやってる。
Video.jsってのを使ってるんで、特になんも考えずに再生してくれるのは便利。 しかしこいつプラグインでflv.js使ってFLV再生ってのもあるんだよな。 PeerCastStationは内部的にFLVを使ってるので1、これ使えば別になんも考えずに動いたっちゃあ動いたんだよなあ……。 まあクライアント側の処理は少ない方がいいだろ、と考えておく。
自分で使ってみないことには強化もしないので普段からブラウザだけで視聴するようにしてるんだが、UI周りで不満が出てくるのでなんとかしたい。 やっぱり自分で使うの大事だな。
チャンネルが止まってる場合は視聴のリクエストを受ける度に再接続するようになってたんだが、HLSだと定期的にプレイリストにアクセスされるので、終了したチャンネルでもめちゃくちゃ再接続を試行してしまっていた。これはよくないので再接続はやめたいが、でも新しくプレイヤーを開いた時なんかは再接続してほしいなあ……。新しくプレイヤーを開くときにはセッションIDを割り当てるので、割り当てた時だけ再接続するようにすればいいか。した。
プレイヤーを新しいウィンドウで開くつもりでやってたが、新しいタブでプレイヤーが開いてしまう。 そういうものかと思っていたが、他のタブを開いてると見えなくなっちゃうので手動で切り離してたんだけどあまりにもめんどい。なんとかならんかなーと思ったら別にポップアップで開くのもできるようだ。 MDNにはポップアップブロックとかあるので注意!みたいなこと書いてあるからブロックされるんかと思ったが、どうもユーザー操作からのポップアップならブロックされないようだ。ボタン押した時だけ開くやつだし問題ないな。しかしこの辺りのドキュメントがみあたらないのは不親切。まあポップアップブロックは各ブラウザの独自仕様だから仕方ないけども。
再生ボタンを押した時に通常はプレイリストをダウンロードして、プレイヤーを開くのはドロップダウンメニューから選んだ場合だけ、としていたんだが、ブラウザのプレイヤーをメインにしたい時はめんどくさい。設定でどれを標準にするか選べるようにしよう。 設定追加するのはめんどくさいんだが、ブラウザだけで完結する設定は比較的簡単に指定できるように作ってあったのですぐできた。
音量が毎度100%で始まるのが困る。前回の音量を覚えておくようにしよう。ということでローカルストレージに保存しておくようにした。ついでに初期値は50%にしておこ。うるさいと困るしね。
Video.jsのプレイヤーはプレイヤーをクリックすると再生停止しちゃうのでいまいち使いづらい。これをなんとか止められないかな……。 調べたらドキュメントにずばりそのものが書いてあったのですぐ止められた。あと試してる時にダブルクリックするとフルスクリーンになる機能がデフォルトで入ってるのに気付いた。 クリックすると止まるのにダブルクリックする奴おる~? ともあれこいつは生かしたまま、クリックすると止まるのだけ消せたのでよかった。
ホイールの上下で音量上下するのを入れといたんだが、一定時間でコントロールが消えてしまうため、その状態で音量上下すると変わってるのがわかりづらい。コントロール表示したいなあ……。 なんか無いかなーと探したところ、userActiveってのを設定すると強制的にコントロールを表示できるようだ。やったー。
で、コントロールは出るようになったんだが、音量バーはマウスカーソルがあっていないと表示されない。これも表示しないといまいちわかりづらいのでなんとかしたい。 調べてみたけどそれっぽいのがないなあ……。ソースを見るとどうもストレートな手段ではできなさそう。マウスホバーと同じような処理してやればそれっぽくなるのかな……?なった。まあマウスホバー時のCSSクラス追加してやっただけでやばいいじり方してるわけじゃないので大丈夫でしょう、きっと。
これで再生コントロール周りはだいぶ普通に使えるようになった感じだ。
あとは再生止まった時のエラー処理みたいなのを追加してやりたいなあ。チャンネルが終了したとか接続失敗状態になってる時はそう表示してほしいし、そうでなくチャンネル受信してるけどなんか再生止まっちゃった時は再試行してほしい。次はこのあたりやって、上手くいったら一通り完成としてよさそうだ。
RTMPを受け取って垂れ流すのに複雑な処理がいらなくて楽なので ↩