お疲れ様です,Hirokiです!
以前2記事に渡って書いた,「Xcodeの使い方」の記事は
ご覧いただけたでしょうか?
・Macを持ってるけど,プログラミングをやったことがない!
・過去にプログラミング独学で挫折してしまった...
・SwiftでiPhoneアプリ(iOSアプリ)の開発をしてみたい!
と言う方は,是非記事を読んで試してみてください.
↓初めてアプリ開発をする方はこちら↓
さて今回は,Swiftで音楽を鳴らすことのできる
AVFoundationフレームワークを使った,
AVAudioPlayerクラスの紹介と実践です!
今回も一緒に,簡単なアプリを作ってみましょう!
それでは内容に入っていきます.
目次
Swiftで音楽を鳴らすには?
前置きでも書きましたが,Swift・Xcodeで音楽を
鳴らしたい場合は,AVFoundationフレームワークを使います!
Swiftを始めたばかりの方は,なんだそれは!?
と思いますよね.
そこでまずは,フレームワークについての説明からしていきます.
フレームワークとは
フレームワークとは,簡単に言うと
「私たちが開発をしやすいように事前に準備されている雛形」のことです.
今回は,その中でも「AVFoundation」というフレームワークを使用します.
このフレームワークで出来ることは,これらになります.
・目に見えるものや音の操作
・音声の処理
・音声インタラクションの設定
他にもまだあるのですが,詳しくはまだ触れないでおきます.
今は,パッとしなくても全然大丈夫です!
そのうち必ず,理解できる時がきます!
プログラミングにおいて大事なことは,
「一度で完全理解しようとしないこと」です.
本当にこれに限ります.
プログラミングを初心者が学習する上で非常に
大切なことをまとめた記事があるので,
読んでみてください.
↓プログラミング初心者の方はこちら↓
それでは,その次に大事な
「クラス」についての説明です.
クラスとは
クラスとは,簡単に言うと
「設計書のようなもの」です.
先ほど,説明したフレームワークの中に
クラスは様々な種類用意されています.
イメージとしては,このような感じです.
今回,使用する「AVFoundation」というフレームワークの中に
「AVAudioPlayerクラス」というものがあり,今回はそれを使っていきます.
そのクラスで出来るのは,これらのことです.
・好きな時間だけ音を鳴らす
・ファイルやメモリバッファから音を再生
・繰り返し再生
これらの機能を押さえておけば,とりあえずOKになります.
他にもどんなものがあるのか,気になった方は
詳しくはこちらに載っていますので是非ご覧ください.
クラスとは,「設計書」のようなものと
例えましたが,下の画像のようなイメージです.
この場合ですと,「設計書」によって作られた
スポーツカーや軽自動車のことを
「インスタンス」と呼びます.
ここで訳分からない!となった方も気にしなくて
大丈夫です.
どんどん先に進みましょう!
音楽を鳴らすアプリの画面作成
今から,一緒に音楽を鳴らすアプリの画面を作成していきます.
早速,Xcodeを起動してみましょう!
①Xcodeを起動してください
②Single View Appを選択
③Product Nameは自由に付けてください
④保存場所も自由です(どこかのファイルにまとめておくと良いかも)
これで,アプリを開発する準備が整いました.
それでは,まずUI(ユーザインタフェース)の作成をします.
※UIとはアプリのデザインなどのことを指します.
①Main.storyboardを選択してください
②[ Button ]を2つ配置してください
③それぞれのテキストを「START」「STOP」とします
今回もデザイン性は無視して,超シンプルにボタンを2つ並べるだけにしました.
そしたら次に,ボタンの紐付けをしてあげます.
↓紐付け方法などを忘れてしまった方はこちら↓
①画像右上の赤丸のアシスタントエディタをクリックしてください
②「START」と「STOP」をそれぞれ紐付けてください(Actionで名前は「start」「stop」)
次に再生する音楽ファイルを用意します.
なんでも良いのですが,今回はフリー素材を使いましょう.
というフリーBGM素材サイトから持ってきます.
①フリーBGM DOVA-SYNDROMEからダウンロードしてください
②ファイル名を「music.mp3」に変えてください
ここまで終わったら,XcodeにBGMのファイルを保存します.
①左の赤い箇所にBGMのファイルをドラッグ&ドロップしてください
ここまで終えたら,準備完了です.
ここからは,コードを早速書いていきましょう!
AVAudioPlayerクラスを使ってみよう
まず,何を最初にするかというと,フレームワークをインポートします.
①ViewController.swiftに切り替えてください
②import UIKitの直下に,import AVFoundationと入力してください
これで,AVFoundationフレームワークのインポートが完了しました.
①続いて,let 任意の名前① = Bundle.main.bundleURL.appendingPathComponent("BGMのファイル名") を入力してください
②var 任意の名前② = AVAudioPlayer() を入力してください
let musicPath = Bundle.main.bundleURL.appendingPathComponent("music.mp3")
で,BGMファイルが保存されている場所までの道筋を
「musicPath」という定数に格納しました.
(流したい音楽はここに入ってるよー!ということ)
次に,var musicPlayer = AVAudioPlayer()
で「AVAudioPlayerクラス」をインスタンス化しました.
(musicPlayerという名前でAVAudioPlayerクラスの内容を使えますよー!ということ)
ここで意味が分からなくても「ふーん」という感じで聞き流してください.
①続いて,赤枠で囲まれたコードを「start」の中に入力してください
これで,ボタンを押した時に音楽を再生してね!
もし,エラーが出たら「エラー」って出力してね!
というコードを書きました.
最後にSTOPボタンのアクションです.
①musicPlayer.stop()と入力してください
これで,STOPボタンを押した時に音楽を止めてくださいね!
というコードを書きました.
以上で,簡単な音楽再生アプリが完成です.
シミュレーターか,自分のiPhoneで実機テストをしてみましょう!
①左上の[ ▶︎ ]を押してください
②「START」と「STOP」を押してみてください
音楽が再生されたでしょうか?
再生されたら大成功です!
もし,再生されなかった場合はどこかのコードが抜けていたりするので,
もう一度確認してみてください.
Swiftではこんなに簡単にちゃんとした機能を持った
アプリを作ることができます.
最後に,応用編です.
応用編
最後に応用編をしてみましょう.
iPhoneを降った時の動きを検知して,音を鳴らしてみましょう!
①「stop」のアクションの下に,このコードを全て入力してください
入力し終えたら,実機転送してiPhoneを降ると音楽が流れるか試してみてください.
これは,もともとimportされているUIKitフレームワークの中の
1つである,motionBeganというインスタンスメソッドを使用しています.
一見難しそうな処理でも,Swiftなら一瞬で
実装することができます.
最後に
もし,もっと開発がしてみたい!
と思ったら,他の記事を読んでそれを実践してみてください.
↓初心者から1ヶ月半でオリジナルアプリを作った方法↓
私が初めて,学習した際に購入した書籍を貼っておきます.
非常にオススメです.
それでは,ここまで読んでいただきありがとうございました!
次回,またお会いしましょう.