タイトル | 鶴薗賢吾のCocoaはやっぱり!出張版》Cocoa版ムービープレイヤをチェック(5) | カテゴリー | QuickTime, Cocoa, 鶴薗賢吾のCocoaはやっぱり!出張版 |
作成日 | 2001/8/18 13:51:9 | 作成者 | 新居雅行 |
■ QuickTimeコールバック 実は、このサンプルコードには、もう1つ重要な意味を持っています。QuickTimeのコールバックをCocoaアプリケーションから利用しているというところです。 再生ボタンがクリックされたら、再生ボタンを停止ボタンに切替え、また、停止ボタンがクリックされたら、再生ボタンに戻していました。しかし、これだけでは不十分です。 ムービーを最後まで再生してしまったときに、再生が止まります。この時にも、停止ボタンを再生ボタンに戻さなければならないわけです。しかし、再生が終わったことを直接的に知る手段は、NSMovieやNSMovieViewには用意されていません。このため、QuickTimeコールバックを使って、ムービーを再生し終わった時に、MyCallbackProcという関数を呼んでもらうようにしています。 MyCallBackProcが呼ばれると、以下のようにresetPlayButtonForMovieStopState:を呼び、停止ボタンが押された時の処理に流れるようになっています。 MyCallBackProc → adjustPlayButtonForMyMovieControllerObject: → resetPlayButtonForMovieStopState: resetPlayButtonForMovieStopState:では、setTitle:でタイトルを「 > 」に変更し、setAction:でアクションを「 play: 」に変更しています。
QuickTimeのコールバックについては、この記事で扱うにはやや高度なのと、QuickTime自身の話題になってしまいますので、入り口だけ示すというところにとどめたいと思います。また、Cocoaのスタイルからすると、コールバックを使うよりも、NSMovieViewのデリゲートで実現するのがスマートではないかと思っているのですが、将来的には、NSMovieViewが拡張されてそのようになるかもしれません。 ■ サンプルプログラムの改造の勧め 以上で、ムービーの扱いについて、ある程度理解していただけたのではないかと思います。これをベースに改造してオリジナルのソフトウェアを作ってみると、より理解が深まると思います。音量調整のスライダーを参考に、再生速度を変えられるようにしてみるというようなものであれば、簡単に実現できます。多少Cocoaの知識があれば、NSOpenPanelを使ってファイルをユーザーが選択出来るようにもできます。また、NSMovieは、QuickTimeによって駆動されているためMP3の音楽のファイルをオープンすることもできます。NSTableViewにプレイリストを表示して、MP3プレイヤーにチャレンジしてみるのもよいかと思います。 [鶴薗賢吾] | |
関連リンク | Cocoaはやっぱり! |