Swift Playgroundsで学ぶiOSプログラミング

Swift 4.0への対応と超簡単なHLSビデオプレーヤーを作成

文●柴田文彦 編集●吉田ヒロ

2017年10月30日 17時00分

極少のコードでHLSムービープレーヤーを作る

 今回は、Swift 4の話でだいぶ文字数を使ってしまったので、かなり小さなプログラムで非常に大きな効果を発揮する例を、1つだけ示しておくことにします。それは、HLS(HTTP Live Streaming)に対応したムービープレーヤーです。HLSはアップルが強力に推進するオンラインビデオの配信方式なので、アップル製のプラットフォーム上では、かなり強固なサポートが得られます。そのムービープレーヤーは、これ以下は考えられないほど簡単なプログラムで、高度な機能を持ったものが実現できます。

 早速コードを見て見ましょう。HLSのURLを文字列としてプログラムに固定するなら、たったこれだけで実現できます。

今回新たに作成するHLSムービープレーヤーのソースコードです。たったこれだけで、インターネット上のHLS仕様のムービーのストリーミングを受信しながら再生するプレーヤーができてしまいます

 これまでこの連載に付き合ってくれた方なら、コードを読んで簡単に意味を把握できるでしょう。まず再生したいHLSのURLをURLクラスのオブジェクトとして作成します。次にそのURLを指定してAVPlayerオブジェクトを作成します。それからUIを含むビューコントローラーとなっているAVPlayerViewControllerクラスのオブジェクトを作成します。そしてそのオブジェクトのplayerプロパティとして、上で作ったAVPlayerのオブジェクトを指定します。それを画面に表示するためにプレイグラウンドのページに張り付け、最後にプレーヤーの再生を開始するだけです。

 上のプログラムに埋め込んだURLは、アップルのHLSのテスト用ムービーでした。

上のプログラムに埋め込んだURLは、アップルのHLSサンプルの1つを再生するものでした。NTSCのテストパターンです。プレーヤーのUIはiOS自体が用意してくれます。そのためiOSのバージョンによって機能や配置が異なります。これはiOS 11のものです

 もちろんこのURL部分を変更するだけで、ネット上にある好きなHLSムービーを再生できます。アップルが開発者向けに提供しているWWDCのムービーももちろんHLSなので、この簡易プレーヤーで再生することができます。

言うまでもなく、プログラムのURL部分を変更すれば、インターネット上の様々なHLSムービーを再生できます。これは、今年のWWDCのセッションビデオで、まさにHLSビデオについて解説しているものです。ほかにもいろいろあるので見てみてください

 検索すれば、他にもHLSとして視聴可能なムービーは、インターネット上にいくらでも見つけることができるはずです。このプレーヤーに、再生するムービーを選択するUIなどを付け加えて、実用性を備えたアプリに仕上げるなど、いろいろな楽しみ方があるでしょう。

次回の予定

 今回は、まずiOS 11に合わせて登場したSwift Playgrounds 1.6で採用されたSwift 4と、これまでのSwift 3の違いについて取り上げました。またそれとは脈絡なく、AVKitのHLSムービープレーヤーを紹介しました。次回からは今回とはまったく脈絡なく、また新しい話題を取り上げる予定です。

■今回作ったプログラム

mobileASCII.jp TOPページへ