ekCraft's blogs

SE転向を目指すサンデープログラマーの備忘録

【Swift】AVAudioPlayerで音楽を再生する

現在、以下の書籍を使って製作したゲームアプリをベースにオリジナルのアレンジを加えて、Swiftの勉強をしています。

iPhoneのゲームアプリをつくろう!

iPhoneのゲームアプリをつくろう!

 

 「入門」や「初心者向け」を謳う多くの書籍の中で、この本ほど優しい本を私は知りません。もし「プログラム全くかじったことないけど、iPhoneアプリ作ってみたい」とか、「iPhoneアプリ作るって何?どういう感じ?」という方がいたらとてもオススメです。

 

さて、製作したゲームの中で音楽を流したかったのですが、調べに調べて「どうやらAVAudioPlayerというものを使うらしい」というところまでは辿り着いたのですが、調べたページのコードを参考にしても、どうもうまくいかず、ずっと匙を投げたり放置したりしていたのですが、やっとまともに音楽が再生できました。

 

理解はできてませんがとりあえずできた方法を忘れないように書いておきます。

 

環境


Swift 2

Xcode 7.2

 

手順


  1. AVFounditionフレームワークを追加する。
  2. Supporting Filesに音楽ファイルをドラッグ&ドロップする。
  3. ViewControllerにimport AVFounditionを書く。
  4. ViewControllerクラスにAVAudioPlayerDelegateを継承させる。
  5. ViewControllerクラスの中でAudioPlayerを宣言する。

    f:id:ekCraft:20160128173836p:plain

  6. 再生するクラス(TitleSceneとします)にもimport AVFounditionを書く。
  7. TitleSceneクラスの中でViewControllerをインスタンス化する。

    f:id:ekCraft:20160128174427p:plain

  8. 再生したい場所に以下のコードを書く。

    f:id:ekCraft:20160128174916p:plain

    ※音楽ファイル名:scene1.mp3

  9. 止めたい場所に以下のコードを書く。

    f:id:ekCraft:20160128183911p:plain

 

8のコードtry catchの部分は最初以下のように書いてたんですがどうしてもエラーが出てしまってつまづいていました。どなたかわかる方がいたら是非教えてください。。

f:id:ekCraft:20160128171930p:plain

2016-1-30 追記:

AVAudioPlayer(contentsOfURL: error: )という書き方はSwift 1.X時代の書き方であるとご指摘をいただきました。 

 

参考サイト


【Swift】音を鳴らす - とりあえず何でも書く

qiita.com

akira-watson.com

Mika's

いつも本当に助かってます。ありがとうございます。