【超基本】カウントアップで学ぶ②AVFoundationで効果音をつける。


はじめに

本記事はプログラミング初学者の筆者が、備忘録として作成した記事であり、興味本位で試してみたい機能についてのメモである。

前回の続きです。
【超基本】カウントアップで学ぶ①if文

ゴール

・AVFoundationを用いて、アプリに効果音を付ける。

内容

・前回作成したカウントアップアプリに効果音を付ける。
・AVFoundationを用いて、Labelが"7"の時にハッピーな効果音を流す。
・↑と同時にimageViewに"犬"の画像を表示し、"祝福の言葉"をLabelに表示させる。

完成:Simulator画像

・"7"の時、効果音が鳴る。
・犬に祝ってもらう。

備考

前回のコードから追加した箇所は「//追加」のようにコメントアウトしております。そのほかの部分は、前回と同様のものです。

完成:実際のコード

countUp.Swift
import UIKit
import AVFoundation //追加

class ViewController: UIViewController {


    @IBOutlet weak var countLabel: UILabel!
    @IBOutlet weak var imageView: UIImageView!

    var count = 0

    //音源ファイルを指定する。
    let lucky7Music = Bundle.main.bundleURL.appendingPathComponent("音楽ファイル名")
    //音楽プレイヤーインスタンスを作成する。
    var lucky7Player = AVAudioPlayer()


    override func viewDidLoad() {
        super.viewDidLoad()

        countLabel.text = "0"

    }

    @IBAction func UPButton(_ sender: Any) {

        count = count + 1
        countLabel.text = String(count)

        if count >= 10  {
            countTextColer()
        }
            else if count == 5 {
            redTextColor()
            imageView.image = UIImage(named: "画像ファイル名")
            }
            //7の場合を追加
            else if count == 7 {
            do {
            //音楽プレイヤーに音楽(lucky7music)をセット。
            lucky7Player = try AVAudioPlayer(contentsOf: lucky7Music, fileTypeHint: nil)
            //音楽プレイヤ〜を再生。
            lucky7Player.play()
            } catch {
                print("エラー発生")
            }
            countLabel.text = String("Labelに表示したい言葉")
            imageView.image = UIImage(named:"犬の画像")
        }

    }

    @IBAction func DOWNButton(_ sender: Any) {

        count = count - 1

        countLabel.text = String(count)

        if count <= 0 {
            resetTextColor()
            imageView.image = UIImage()

        }
            else if count == 5 {
            redTextColor()
            }


    }
    @IBAction func ResetButton(_ sender: Any) {
        resetButton()
    }
    func countTextColer() {
        countLabel.textColor = .yellow

    }
    func  resetTextColor(){
        countLabel.textColor = .black

    }
    func redTextColor(){
        countLabel.textColor = .red
    }
    func resetButton(){
        imageView.image = UIImage()
        count = 0
        countLabel.text = String(0)
        countLabel.textColor = .black
    }

}

結果

・AVFoundationを使い、アプリに音楽を挿入できるようになる。
・犬に祝ってもらえる。