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 オブジェクトを作っている。