AVPlayerView を使って
メディアファイルを表示
QTKit が使えていたときは、QuickTime が扱えるファイル形式のものから QTMovie オブジェクトを作り、QTMovieView にセットして表示させていたけれど、それが使えなくなって、Mavericks からは、iOS にはあった AVPlayerView というのができたので、その簡単な使い方。
ここでは、ビデオファイルを読み込んで表示させるところだけ。
使い方は、とても簡単だった。まずは、使いたい class で、@playerView という outlet を作り、rake ib:open で、Xcode を開いて、AVPlayerView をウィンドウに配置し、playerView と結びつける。
outlet :playerView
何らかの方法で、ファイルの URL を得たら、AVPlayer クラスの playerWithURL(url) でファイルの url を指定して、AVPlayer オブジェクトを作る。そしたら、@playerView の player に avplayer を指定する。
avplayer = AVPlayer.playerWithURL(url)
@playerView.player = avplayer
これで、url のメディアファイルを読み込んで、AVPlayerView に表示できる。
ただ表示させるだけでなく、いろいろな情報にアクセスしたい場合は、AVAsset オブジェクトを作ってからの方が使いやすいかも。
まずは、AVAsset の assetWithURL(url) で AVAsset オブジェクトを作る。これを元に、AVPlayerItem の playerItemWithAsset(asset) で AVPlayerItem オブジェクトを作り、それから、AVPlayer の playerWithPlayerItem(playerItem) で AVPlayer オブジェクトを作って、それを最終的に playerView に結びつけている。
asset = AVAsset.assetWithURL(url)
playerItem = AVPlayerItem.playerItemWithAsset(asset)
player = AVPlayer.playerWithPlayerItem(playerItem)
@playerView.player = player
ただ単にメディアファイルの再生ということなら、こんなに面倒なことをすることはないけど、詳細にコントロールしたいとか、情報を得たいとかいう場合は AVPlayer クラスでは対応できないので、AVPlayerItem オブジェクトを作っている。