題名:Java Diary-97章

五 郎の 入り口に戻る
日付:2009/7/31
目 次に戻る


Goromi-Tube Part3

ここからしばらく開発時に書いていたメモとその説明でお茶を濁す事にする。

7/18めずらしく家でWindowsを立ち上げ、Media PlayerをChromelessの状態で作り上げようとする。参考にしていたサイトのコードをもとにあれこれやるが、ビデオの進行状況を、 ProgressBarで表示するかHSliderで表示するかで何度かいったりきたりする。ビデオの進行状況をHSliderに反映し、HSlider の値をビデオに反映すると、両すくみになって動かない。この事実に気がついて、またProgressBarにもどしたりする。またボタンを押すたび、表示 をいれかえるのも結構面倒。
そこまでやって”考えてみれば、こういうメディアプレーヤをOpenSourceで公開している人だっているのではなかろうか”と思いつき探し出す。結構 いることがわかるが、どれもぴったりというわけではない。

プライベートでは絶対にWindowsなんか使う物か、と固く決意している私であるが、Flashの開発環境はWindowsでしか動 かない。しかたがないから、Windowsを立ち上げる。それくらいこの時期は開発意欲に燃えていた、ということなのだろう。

Youtubeを使った事がある人はわかると思うが、動画の下にあれこれ部品がならんでおり再生、とか全体何分で今何分まで再生しました、とかが画面上でわかるようになって いる。しかし場合によってはそれが邪魔なこともある。

Chromelessというものにすると、それらを取り外すことができる、と知ったのはだいぶたってから。その場合再生の制御とかは自 分で作る必要がある。ここ数日はその作業をあれこれやっている。

やっかいなのは再生状況を示すことであった。なぜそれがそんなにやっかいか?話としてはこうである。

再生時間が進む度ビデオプレーヤーが何か言う。その値をスライダーにセットする。これは簡単にできる。

スライダーを動かしたとき、その値をビデオプレーヤーにセットする。これだけなら簡単だ。

問題はこれを両方やるとビデオが進んだ→その値をスライダーにセット→スライダーの値が変わったからその値をビデオにセット とやりだ しろくな動きをしなくなることだ。世の中にはこれを実現している例がいくつもあるから、何か方法はあるのだろうが、見つからない。そういえば、再生ボタン を押すと、アイコンを一時停止にしなくちゃ。そういえば一時停止アイコンってどこにあるんだとかぐるぐるし始める。結論は次の日に出た。

7/19,20
さすがにWindowsを立ち上げるのはやめ、Mac上で時々情報を漁る。あれこれ悩んだ末、つまるところGoogleのChrome Playerでいいではないかということになる。ユーザとしてGoromi-Tubeを使うが、やはりビデオ終了時に表示がおかしくなるのがきにかかる。 いったんこの状況にはまるとなかなか戻らない。

あれこれ悩んでいると、”できあいのを使えばいいじゃないか”という結論に達する。後にこれには一つの問題と一つのメリットがあること に気がつくが、この時点ではそれはまだわかっていない。とにかく面倒になったので、放り投げている。

”ビデオ終了時に表示がおかしくなる”というのは、ビデオが終わると、ビデオの窓内に”関連ビデオ”が延々表示される、とう現象 である。再生エリアは一回り小さくなってしまい、一旦こうなるとなかなか戻らない。つまるところページを再読み込みすることになる。

これはChromelessならおこらない。やっぱりChromelessにするか。でもまたあの問題が、と悶々としているうち Google先生から教えがもたらされる。Tubelocのソースコードのうち、ある部分を変更するだけでこの問題は回避できるとの事。しかしこうして書 いていると、Google先生のお力添え無しにはこの開発ってなりたたないなあ。

7/21 まずビデオが終了したときに”関連ビデオ”が表示されるのを止める。次にビデオのサイズを画面サイズに合わせて変更するようにする。ここで一度アップロー ド。それからまたプログラムを直しだしたら動きががたがたになる。少しちゃんと考えなくちゃ。

7/25 奥様が夜宴会に行っているので、子供が寝てから少し作業。それまでキーワードを選択した時にビデオを小さく、一番下に表示していたが、やりすぎだと思いや める。キーワードと縦の列に並べて表示するようにする。

ここには明示的に書いていないが、今回のGoromi-Tubeは原型となったGoromi-TVから一つ大きく変更しているところがある。

Goromi-TVでは、キーワードを選択した時にはビデオを消していた。Goromi-Tubeでも最初それにならってビデオの”表 示”を消していた。

会社でこそこそ作っている間は、それで”消えた消えた”と思っている。しかし家で使ってみると音が流れ続けていることに気がつく。表示 を消しただけだからだ。

おっとバグだ。直さなくちゃ、と思う。しかしここで開発環境がWindowsであることが幸いする。その場で直す訳にはいかず翌朝まで またねばならぬ。というわけでそのまま使い続けるとそれは結構悪くない事に気がつく。

なぜ悪くないか?TVを見ているときは、すべてが”ながら”なのだ。常に音声と映像は流れ続け、その上でチャンネルを変えたりいろいろなことを している。

そもそもTVとはそうしたものではなかったか。電源をいれてから切るまで映像は流れっぱなしだ。そう考えるとGoromi-Tubeも そのようにしたい、と考え始める。キーワード選択のときも映像を表示し、起動直後から映像を流しだすべきだ。

しかしこの”起動直後から映像”というのは一種のチャレンジでもある。ユーザの手がかりがいっさいないところに、何か一発で定時をしな くてはならないのだ。

いまこれを書いている段階ではこの”最初に表示するビデオ”は適当に選んでいる。しかしユーザログがとれるようになれば、それを使って 何かしたいものだ、というかいつも”情報推薦はかくあるべし”とかいっている人間ならば、少し気の利いたことを考えるべきではなかろうか。

7/27,28 ビデオが全画面になったとき、リストを隠 したり、再度表示したりする部分を作る。作ること自体は簡単だが、どれが使いやすいか迷う。
マウスを動かした時にリストスクロールを一時停止する機能を付ける。

これも”バグから生まれた機能”である。このころ”全画面表示”をしょこしょこ作っていた。家で子供に見せていると”おっきくして”と リクエストがでる。そうだよねえ。やっぱり大きくしたいようね。

そろそろいいだろう、ということでどんと大きくする。すると(あれこれ問題はあるにせよ)ちゃんと大きく表示される。しかし右側に流れ ているビデオとか、キーワードはそのままである。そうだよね。これ消さなくちゃ。

とおもいつつ見ているうち”これも結構いいかも”と思い出す。再生してわかったのだが、Youtubeにアップロードされている動画 は、動きが激しいものばかりではない。私が夜に聞くようなクラシックは、静止画が切り替わるだけのものが結構ある。

そのような画面であれば、右側にビデオが流れていても邪魔にならない、それどころか単調な画面を補う効果だって期待できる。というわけ でそのまま表示もできるし、隠す事もできることにした。

マウスを動かしたときにスクロールを停止、というのは Goromi-TVの時にもつけた機能である。やってみるとずるずる動いていく静止画をクリックする、というのは結構大変だ。というわけで動いている間は 止めるようにしたのだが、今のアルゴリズムは今ひとつ。そのうちまた直すかもしれない。

7/31-8-1/公開が近づくにつれ、クッキーを使ってユー ザ管理をちゃんとやろうと思い出す。家でクッキーを調べ、そして実装方法を考える。あと子供 に”昨日見たビデオを見たい”といわれたのでヒストリー機能をまじめに考える。このまま順調に行けば、来週末でなんとか完成し、再来週公開できるかもしれ ない。

ここらへんから公開を意識しだす。一人で使っている分には気楽なものだが人様にさわってもらおうと思うとあれこれ考えることがでてく る。

まずせっかくWebアプリとして実装するのだから、ログ管理をちゃんとやりたい。あるいは使う側からしても、履歴を見たいし、変えた設 定は覚えておいてほしい。

というわけで”前にもきたよ”ということを覚えておいてほしいわけだ。こうした要望はそれこそ10年以上前から存在しており、クッキーなる 仕組みがそなわっている。いままで何故かそれを避けて通ってきたのだが、いよいよまじめに取り組もうかという気になる。

週末なのでコードは触らず、クッキーってどうやって使うのかあれこれ調べる。結局こうした時間は必要だし、けちると後で痛い目にあう。

今回はいつもと違って開発環境がWindowsだ。であるからして週末は極力コードを書かず、必要な情報を集めたり、頭の中であれこれ構想を組み立てる訳だ。必要に迫られて行った行動だ が、結構うまく言っていることに気がつく。

とにかくコードをばしばしかき、山のようなコンパイルエラーをつぶし、なんだか動いていればそれでいいよね、というのが私のプログラム の作り方である。素人だからこれでもいいのだが、

”そもそも自分は何をしているのか”

を見失って無駄に時間をつぶす事も多い。

強制的にコードから離れて考えをまとめるとそうしたことがある程度防げるのである。いまいましいWindowsが立ち上がったときには 頭の中で構想もできているし必要なサンプル、素材もそろっているから作業は実に早く進む。

あれこれ考えながら機能をつけたりけずったりするのだが、”履歴”機能はとても便利だとわかった。元はといえば娘に”昨日みたのみせ て”といわれなかなかたどり着けなかったことからつけた機能だが、確かに便利である。


8/3 まずクッキーを実装。うまく動いているような気がする。アイコンをhttp://designleaves.y-com.info/からのものにごそっと かえる。しかしやはり”トップメニュー表示”と”リスト早送りのアイコンはしっくりこない。言語切り替えメニュー実装。

8/4 使いながら作っているうちに、言語メニューとトップを統合すべきということに気がつく。その部分をごそっとかえる。ユーザの設定をなんとか記録できるよう にする(とはいっても今のところトップメニューの言語しかないが)

8/5リストの表示、非表示を切り替えるボタンをアイコンにする。他が全てアイコンだったのにここだけおかしかったから。意味がとれるかどうかわからない が、これでいいだろう。ログをメールで送信する機能に再びチャレンジする。取扱説明書を作ろうと半分つくりかけるが面倒になる。だいたい適当に触ってもら えればわかるだろう。連絡先だけどこかに書いておくか。
8/6 ”ビデオ埋め込みがリクエストにより無効になっています”の時に関する制御を追加。しかしこれはちょっと面倒な気がする。


こ こまで来て画面上には統一されたテイストのアイコンが並び、”リクエストにより埋め込みがオフになっています”といういまいましい文字を見る事もなくなっ た。(そういう動画がたくさん存在しており-Music Videoの類いはそればかりだ-いらいらさせられていたのだ)細かい調整は延々続くとはいえもう公開してもいいだろう。

とはいえ、まだ解決しなければならない問題が残っている。ユーザ管理をどうしようかと悩むのだ。理想的にはYoutubeのように

”ログインしなくても使えるけど、ログインすればもっと便利”

というものを目指したい。でもそれってどうやるの。というかあれだよね。元のYoutubeもユーザ管理の機能もってるんだからそれと 連動すればいいよね、とかでもそれってどうやるの、とかとにかく思いは乱れ、とどまるところを知らない。

そ んなことは考えずとにかく公開してしまえ、とも思う。仮にこのサイトで告知したとしても見てくれるのはどう考えても二桁だ。そう考えるとともに、頭の中に 密かな考えも浮かび続ける。これは匿名ではあるが、ユーザの行動パターンを見るまたとないチャンスだ。であればきちんとしてから公開すべきではないか。と はいえどこまでいったらきちんとした事に成るのだ。お前がきちんとしたものを作った事があるのか、と頭の中で罵詈雑言が飛び交う。8/7にそれとなくリン クをさらそうかと思ったのだが、結局やめてしまった。

前の章 | 次の章


注釈