MENU
コンテンツ再構築中

Swift:サウンド(効果音)を再生するサンプルコード

ボタンのタップ時や、画面遷移時にちょっとした効果音を再生したいときには AVFoundation の AudioPlayer を使用します。
今回はこの AudioPlayer の使い方をメモしておきます。

INDEX

サウンドを再生する

AudioPlayer を使用し効果音を再生する手順は以下のようになります。

  1. サウンドデータを準備する
  2. AVFoundation のインポート
  3. サウンドデータの読み込み
  4. AudioPlayer インスタンスを生成
  5. AudioPlayer からサウンドデータを再生
  6. ここでは sample.mp3 という音源を準備し、このサウンドを ViewController の viewDidLoad 時に再生する方法を説明したいと思います。

    サウンドデータを準備する

    sample.mp3 ファイルをプロジェクトにドラッグアンドドロップし、コピーします。

    AVFoundation のインポート

    ViewController の先頭に以下を追加します。

    [code]import AVFoundation[/code]

    サウンドデータの読み込み

    override func viewDidLoad() に以下を記述し sample.mp3 を読み込みます。

    [code]let sound_data = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource(“sample”, ofType: “mp3”)!)[/code]

    AudioPlayer インスタンスを生成

    上記 sound_data の次の行に以下を追記します。

    [code]var audioPlayer: AVAudioPlayer = AVAudioPlayer(contentsOfURL: sound_data, error: nil)[/code]

    AudioPlayer からサウンドデータを再生

    続いて play() メソッドでサウンド再生を行います。

    [code]audioPlayer.play()[/code]

    上記の ViewController の全体のソースコードは以下の通りとなります。

    [code]import UIKit
    import AVFoundation

    class ViewController: UIViewController {

    override func viewDidLoad() {
    super.viewDidLoad()

    let sound_data = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource(“sample”, ofType: “mp3”)!)
    var audioPlayer: AVAudioPlayer = AVAudioPlayer(contentsOfURL: sound_data, error: nil)
    audioPlayer.play()
    }
    }[/code]

    複数のサウンドファイルを切り替えて再生したい場合は ViewController 内で関数化すると便利です。

    [code]
    import UIKit
    import AVFoundation

    class ViewController: UIViewController {

    override func viewDidLoad() {
    super.viewDidLoad()

    soundPlay(“sample”, type: “mp3”)
    }

    func soundPlay(fileName: String, type: String) {
    let sound_data = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource(fileName, ofType: type)!)
    var audioPlayer: AVAudioPlayer = AVAudioPlayer(contentsOfURL: sound_data, error: nil)
    }
    }
    [/code]

    まとめ

    今回紹介した方法は効果音以外の BGM も再生が可能ですが、プログラミングにより再生を動的にコントロールしたい場合は CoreAudio や AVFoundation の API を使用しなければいけません。もう少し高度なサウンドプログラミングに関しては、別の機会にでも記事にしたいと思います。

    この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

Please share it!
  • URLをコピーしました!
  • URLをコピーしました!
INDEX