1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

アプリ(swift)で音を追加する方法

Posted at

今回はアプリで音を出す方法について解説します。最近私はrailsでオリジナルアプリケーションを作ったのでswiftを中心に勉強しています。

ViewController.swift
import AVFoundation
//上の記述が必要
class calcViewController: UIViewController {
override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }


 }

まずはimport AVFoundationで音を出すためのフレームワークを導入します。
このフレームワーク以外にもたくさんApple社が出しているフレームワークがあるので自分の作りたいものに合わせて導入してみてください.
こちらがフレームワークの一覧です。http://iosdev.app-rox.com/framework/

次に音楽をファイルの中に入れましょう。
あらかじめ.mp3の状態にしてください。そしてxcode状にある自分が作っているファイルの中に入れてください。
今回はファイルの入れる音楽を"correct.mp3"と"incorrect.mp3"と仮の名前にします。

ViewController.swift
var player:AVAudioPlayer?
func playSound(name:String){
  let path = Bundle.main.bundleURL.appendingPathComponent(name + ".mp3")
  do {
      player = try AVAudioPlayer(contentsOf: path,fileTypeHint: nil)
      player?.play()
  }catch{
  print("error")
  }
}

var player:AVAudioPlayer?でインスタンス化にして使えるようにしていきます。

let path = Bundle.main.bundleURL.appendingPathComponent(name + ".mp3")

pathという定数に情報を入れています。"Bundle.main.bundleURl"で取り込んだ音楽ファイルを見つける動きをして、"appendingPathComponent"で音楽ファイルを読み込む動きをしています。(name + ".mp3")のnameが引数をとっています。

do{}catch{}はdo-catch分と呼ばれ、例外処理をする文になっています。
tryでインスタンスを呼び出し,contensOfにはpathを入れます。

ViewController.swift
func setbutton{
  answer = 1
  if answer == 1{
   //answerが1の時
     playSound(name: "correct")
   }else{
   //answerが1以外の時
     playSound(name: "incorrect")
   }
}

playSound(name: "音楽ファイルの名前")を書くことによって音楽が再生されます。
以上で皆さんできたでしょうか?

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?