Edited at

iOS9でお披露目されたPiP(Picture in Picture)

More than 3 years have passed since last update.


iOS9のアップデート

【iOS9】API Diffs から見る iOS 9 の新機能 #wwdcのまとめが

非常に分かりやすくまとまっていたのでオススメです。

んで、今回はこの記事の中でとりわけ目に留まったPiPを触ってみようと思いました。


PiPとは?

Picture in Pictureの略で、

Youtubeのアプリには以前(2013年夏頃)からついていた機能です。

以下の画像のように、動画を小窓として右下に置いておけるやつですね。

Screen Shot 2015-06-18 at 8.50.01.png

主にアプリ内での動画の再生に使われるAVKit Frameworkに新たに追加されたAVPictureInPictureControllerを使用することによってこれと同様のことができるようになります。2年も経ってなぜAppleがこのController Classを出してきたのかイマイチ理解が及んでいないのですが、iPadでのマルチスクリーンが導入されることなども踏まえると、恐らくAppleとしてタブレット(iPad系)の利用でのUI/UX改善に力を入れている上での1アップデートだと思われます。Watchも並行して動いてますし、iPhoneはもう十分やることやったよ・・・って感じでしょうか?


実際にPiPを見てみる

Apple Developer Libraryにサンプルコードが出ているのでDLしてビルドしてみましょう。(Xcode7が必要です。)

Screen Shot 2015-06-18 at 9.02.40.png

クラス構成はこんな感じです。

Controllerクラスにちょこっとロジックが書かれている感じですね。

AVPictureInPictureControllerがどうやって使っているかは時間があるときに覗いてみます。

(とりあえず今はビルドしてみたい・・・!)

開いてみると再生バーの下に"PiP"というボタンがくっついてきます。

Screen Shot 2015-06-18 at 9.08.24.png

これを押してあげるとYoutubeのアプリでみた"アレ"が再現できちゃうわけです。

Screen Shot 2015-06-18 at 9.10.59.png

こんな感じです。ちなみにこれ、ドラッグしていろんな場所に小窓を固定できます。

ここはYoutubeのアプリと異なるところですね。


既にHackされている。。。

このPiP、現在の公式の仕様ではAppleの公式ビデオ系アプリかSafariでのビデオ閲覧でしか使えないのですが、

アメリカのAdam氏が、"この機能クソつまんね"とどのアプリでもこのPiPが使えるようにHackしたそうです(脱獄不要)。


Reference