foresthillのブログ

ホームページ・CMS制作からアプリ開発、ゲーム製作となんでもござれ。

【iPhoneアプリ】【Swift】SolPlayer開発記(2)AVAudioKitで音声ファイルを再生する

SolPlayer

SolPlayer

  • Naoya Morioka
  • ミュージック
  • 無料

 

すべてをソルフェジオ音源に変えるiPhoneアプリ

「SolPlayer」(ソルプレイヤー)をリリースしました。

 

前回の記事はこちら↓

foresthill.hatenablog.com

 

前回のおさらいは以下です。

・ソルフェジオ化とは、すなわち440Hz→444Hz(432Hz)へのピッチ変換

・実現するには、iPhone上でピッチ変換する必要がある

iPhoneアプリ開発においては、「AVAudioEngine」というすごいエンジンが用意されている。

・上記エンジンを使えば、iPhone上でピッチ変換することが可能

 

まずはAVAudioEngineで音楽を再生する

さて。それではAVAudioEngineを使って

実際にソルフェジオを実装する方法を紹介します。

 

AVAuidoEngineを使えば、iPhone上でピッチ変換し、

ソルフェジオ化することが可能です。

 

…が、そもそも音源を再生できなければ話になりません。

再生機能がないと、せっかくソルフェジオ音源に変換しても聴けませんからねorz。

 

というわけで、まずはAudioEngineで

音源を再生する方法を紹介します。

 

AVAudioKit - 基本は3点セット

AVAudioEngineを使って再生するためには、

基本的には「AVKit」というライブラリを使います。

 

このライブラリの中で、

・AVAudioEngine

・AVAudioSession

・AVAudioPlayerNode

という3つのクラスを主に使って、

音楽を再生していきます。

 

詳しくはこちら。

dev.classmethod.jp

  

※また、これからは「AVAudioEngine」を使って再生、という表現ではなく、

「AVAudioKit」を使って再生」という表現に変えていきます。

 

AVKitを使った再生方法について

さて、それではこのAVAudioEngineもとい

AVKitを使った音楽再生をしてみましょう。

dev.classmethod.jp

 

(「他人の記事の紹介ばっかじゃねーか!」という感じですが。。

基本、他人のフンドシで相撲を取るのがスタイルです笑)

 

まずは上記サイトのソースコードをそのまま書いてみてください。

AVKitで再生することができるはずです。

 

とりあえず[1]〜[8](実際に使うのは[1]〜[6])までやってみてください。

 

なお、[9]以降の「実装(バッファから再生する)」については

今回の開発記では解説しません。

 

 

なぜ、AVPlayerViewControllerを使わないのか?

なお、Swiftには「AVPlayerViewController」というクラスが用意されていて、

一瞬でオーディオプレイヤー機能を実装することができます。

 

www.dorapro.co.jp

 

ただ、このやり方だと今回の「AVAudioEngine」を使った

リアルタイムでのピッチ変換ができないっぽいんです。

 

(ただ自分が紐つけ方がわからなかっただけで、

実際はできるかもしれませんが汗)

 

なので、今回は「AVPlayerViewController」は使わず、

機能も画面も、独自で一から実装していく方法を取ります。

 

次回は本当に解説します笑

さて、再生もできたことですし(何も解説してないけどね^^;)

次回は「ソルフェジオモード」の実装方法を解説します。

(次回はちゃんと解説します笑)

 

お楽しみに。