タイトル鶴薗賢吾のCocoaはやっぱり!出張版》Cocoa版ムービープレイヤをチェック(1)カテゴリーQuickTime, Cocoa, 鶴薗賢吾のCocoaはやっぱり!出張版
作成日2001/8/18 13:37:16作成者新居雅行
■ 今回のテーマ
第1回目である前回は、Cocoaの概要についてざっと説明いたしました。今回からは、実践で役に立つCocoaのワンポイントレッスン的なものを行っていきたいと思っています。「 最初の一歩から 」的な入門記事も考えたのですが、こういったものはすでにいくつかありますし、避けることにしました。
そこで、いくつかのCocoaアプリケーションを作ったことのある方が、もうちょっと使いこなせるようになりたいという時に、役に立つような内容を扱っていきたいと思います。Cocoaプログラミングが全く初めてという方は、第1回の記事の中に書いたリンクを参考に第一歩を踏み出してみてください。
今回は、Appleが配付している「 SimpleCocoaMovie 」というQuickTimeムービープレイヤーのサンプルプログラムを取り上げることにしました。このサンプルコードを読む上で、ポイントになるところをピックアップして解説していきます。全部で5つの記事に分けてお届けします。まずは、以下のURLからダウンロードして解凍しておいてください。

◇SimpleCocoaMovie
 http://developer.apple.com/samplecode/Sample_Code/Cocoa/SimpleCocoaMovie.htm

■ このサンプルから学べること
このサンプルを読むことで何が学べるのか、まず、そのポイントを列挙してみました。

  • NSMovieへのムービーの読み込み方
  • NSMovieViewを使ったムービーの再生や制御方法
  • QuickTime Frameworkの使用法 ( ムービーの制御や情報取得など )

NSMovieというのは、ムービーデータそのものを扱うクラスで、NSMovieViewというのは、ムービーを表示したり、ユーザーからのイベントを受け付けたりするためのクラスです。NSMovieにムービーファイルを読み込んで、それをNSMovieViewに割り当てることでムービーを画面に表示することが出来ます。Interface Builderでは、Cocoa-Graphics Views PaletteにNSMovieViewがありますので、以下のようにして配置を行います。



QuickTime Frameworkというのは、CocoaアプリケーションからQuickTimeのAPIを直接呼び出すためのものです。NSMovieやNSMovieViewは、シンプルで非常に簡単に扱えるのですが、逆に機能が少ないため、比較的単純なムービープレイヤーレベルのものしか作ることができません。
例えば、ムービーキャプチャーソフトやムービーの圧縮ソフトを作りたくても、そういった機能は実装されていないのです。もっと簡単な「ムービーが何秒あるか」というような情報を取得することもできません。そのために、QuickTime Frameworkが必要になることが現状少なくありません。QuickTime Frameworkを使いこなすためには、Cocoaの知識とは別にQuickTimeの知識が必要になってしまいますが、その分きめの細かい制御ができるようになります。必要に応じて、QuickTimeについても勉強してみてください。

■ アプリケーション概要
さて、このサンプルのアプリケーションがどんな機能を持っているのか、まずは実際に動かして確かめてみましょう。ダウンロードしたファイルの中には、ビルドされたアプリケーションが入っているので、ダブルクリックするだけで、すぐに動かすことが出来ます。



起動すると、ウィンドウが1枚開いて、ムービーが自動的に読み込まれて画面に表示されます。読み込まれるムービーはいつも同じで、ユーザーが選ぶことは出来ません。ムービーの下には5つのボタン(NSButton)があり、それぞれの機能は、左から、「先頭に飛ぶ、コマ戻し、再生/停止、コマ送り、末尾に飛ぶ」となっています。その下のスライダー(NSSlider)は、音量調整です。メニューについては、Movieメニュー(NSMenu)の中にMoviePropertiesというメニューアイテム(NSMenuItem)があり、選択すると、「Movie Properties」というムービーの情報を表示するウィンドウが現れます。このウィンドウには、「自動再生かどうか、トラックの数、トラックのメディアタイプのリスト、ムービーの長さ、タイムスケール」についての情報が表示されます。

これで分かるように、このサンプルはやや変則的です。一般のムービープレイヤーのように、ユーザーがムービーを選択することは出来ず、アプリケーションが指定しているムービーファイルしか再生できません。例えば、ゲームソフトでオープニングムービーを再生するような場合のサンプルとしてはぴったりではありますが、一般的なムービープレイヤーのようにするためには、ファイルを指定するためのユーザーインターフェイスの追加が必要になります。
また、ムービーを再生する場合、ムービーコントローラーを使用するのが一般的ですが、あえて使用せずに自前で機能を実装しています。ムービーコントローラーを使うと非常に楽なのですが、逆に何もしなくてよくなりますので、実は勉強にならないのです。そこで、ムービーコントローラーを自前で実装しているようです。


[鶴薗賢吾]
(続く)
関連リンクCocoaはやっぱり!