こんにちは、おひろです。
今日はオーディオ関連のネタを一つ書きたいと思います。
iOS8のオーディオと言えばAVAudioEngineが新しく増えて、
これがホントにすごいわけですが、これをネタにするとキリがないので、
今日はライトに、これまたiOS8で追加されたAVPlayerViewController
について書こうと思います。(AVAudioEngineはまたの機会に)
これを使うとタイトルの通り、コード1行書くだけで音声を再生することができます。
(ちなみに音声のみの話のように書いてますが、動画もいけるはずです)
では、早速やってみましょう。
まず、適当にプロジェクトを作って、Storyboardを開き、
「AVKit Player View Controller」を引っ張ってきて
ルートコントローラーに設定します。
次に新規でクラスを作ります。
今回はAVPlayerViewController自体をルートコントローラーにしているので、
AVPlayerViewControllerのサブクラスとして作ってください。
作ったら、Storyboard上でコントローラーにクラスの設定も
もちろん忘れないように行ってください。
最後に、viewDidLoadで以下の一行付け足します。
(Swiftでも同じ感じでいけると思います)
// ファイル名、拡張子などは必要に応じて変えてください。 self.player = [AVPlayer playerWithURL:[[NSBundle mainBundle] URLForResource:@"hogehoge" withExtension:@"wav"]];
以上です。立ち上げると以下のような画面がでます。
再生ボタンを押せば再生されますし、シークもできます。
標準プレーヤーのようにシークする時に指をずらすと、シーク量を変える
機能もついてたりします。(音声が短すぎると出ません)
つまり、再生するAVPlayerだけ渡してやれば、押されたボタンやコントロールに
応じてAVPlayerViewControllerが適切なAVPlayerのメソッドをたたいてくれるような
作りになっているようです。
ちなみに、AVPlayerの代わりにAVQueuePlayerをセットすると連続再生も
できますし、メディアピッカーで拾ってきたAVURLAssetからAVPlayerを生成すれば、
ミュージックライブラリに入っている曲を再生することもできます。
(ただアートワークなどは表示されませんでした。出す方法があるかもしれません。)
あと、こんな感じにコンテナビューと紐づければ、画面の好きなところに
プレーヤーを簡単に出せるのも便利です。
拡大ボタンを押せば全画面表示もしてくれます。
↓実行したらこんな感じ
AVPlayerViewControllerとその他のパーツを組み合わせれば
簡単にオリジナルのプレーヤーを作ることができそうですね!
ではでは。
この記事を書いた人
- ドラプロのアプリ開発チーム、iOS/Androidエンジニアです。 ビールと天満が好きです。
この投稿者の最近の記事
- Arduino2016.04.28ReMINEの開発が進んできたのでいろいろ報告します!
- iOS2016.04.21MIDIとはなんぞやというのをアプリプログラマ的に説明してみる
- Arduino2016.04.12マイコンモジュールの入出力を増やす技を身につけたので言わせてください
- Android2016.04.07BLE経由で組み込みソフトのアップデートができるなんてそんな夢みたいな話…あったわ!