2012年11月23日金曜日

今日はムービーアプリ

■例によってハマり方面■

お友達からの依頼で、ムービー再生系のiPhoneアプリを作ってます。ムービーアプリなんてSymantec C++以来かもしれない。あまりにも久しぶりなんで、どのFrameworkが最新だかわからないレベルです。MediaPlayer.frameworkですが。

簡単なアプリですがハマったのは以下2点。まぁね…ハマる以前だけどね。

画面真っ黒になるだけで何もでない
▶MPMoviePlayerViewControllerではなくMPMoviePlayerControllerを使っていた。

参考にしたサンプル・コードにはMPMoviePlayerViewControllerって書いてあったのですが、Xcodeの入力予測を使った時に間違ったようです。MPMoviePlayerViewControllerに変えたらムービーのコントローラなどがちゃんと表示されました。でも、ムービー表示領域は真っ黒で「Loading...」が表示されたままです。

Loadingのままで先に進まないし、play直後にfinishしてしまう
▶fileURLWithPathではなくURLWithStringを使っていたorz

困ったときのStackOverFlowさんありがとう。

Storyboard + ARCで作っているけど、Objective-C 2.0をちゃんと勉強した後となっては正直ARCにあんまりメリット感じません。Javaとは言わないけど、せめてC++的にスタックで自動的にお掃除してくれるなら文句ないんですが。

このところ会社ではずっとTitanium mobileをいじってます。JavaScriptなんでメモリの後始末を考えなくて良いという点「だけ」は良いものの、やっぱりネイティブの方が楽です。APIなどが確実に動く(Titaniumはbound関係のAPIで値が返って来なかったりすることが多い)し、何よりInterfaceBuilderが使える。Titaniumだと「画面上に配置したオブジェクトを全部50dp下げる」なんてことが起こると座標をいじらないといけないので面倒くさくていけません。