LoginSignup
3
1

More than 3 years have passed since last update.

swift辞書「音を鳴らす」

Last updated at Posted at 2021-02-21

お断り

この記事は自分専用メモなのですごい初歩的な事しか書いていませんがご了承下さい。
確認環境
Interface:Storyboard
Life Cycle:UIKit App Delegate
Language:Swift
◉Use Core Data
__○Host in CloudKit
◉Include Tests

この記事で出来る様になる事

関連づけしたbuttonが押された時に音を鳴らせる用になる

実装

UIの実装

storyの真ん中にbuttonを配置した後titleをpushに変更してからAutoLayoutのHorizontal Center in Container,Vertical Center in Containerにチックを付けて動かない様にします。これでUI
の実装は終わりです。こんな感じになればOKです。!
スクリーンショット 2021-02-21 7.41.43.png

コードの実装

最終的なコードはこちらです。

import UIKit
import AVFoundation

class ViewController: UIViewController {

    var sound:AVAudioPlayer!

    override func viewDidLoad() {
        super.viewDidLoad()
        sound = try? AVAudioPlayer(contentsOf: URL(fileURLWithPath: Bundle.main.path(forResource: "test", ofType: "wav")!))
    }
    @IBAction func get() {
        sound.stop()
        sound.currentTime = 0
        sound.play()
    }
}

import AVFoundationではフーレムワークを読み込んで来ています。
var sound:AVAudioPlayer!ではAVAudioPlayerのインスタンスをsoundと言う名前で作っています。
override func viewDidLoad()この関数は画面が表示された時一度だけ実行されるので、ここでは先程作ったインスタンスに鳴らす音を設定して行きます。
sound = try? AVAudioPlayer(contentsOf: URL(fileURLWithPath: Bundle.main.path(forResource: "test", ofType: "wav")!))ではtest.wavを鳴らす様に設定しています。名前と拡張子は分離して書きます。
@IBAction func get()この関数は関連づけしたbuttonが押されると実行されます。
sound.stopでは今鳴らしている音を停止します。
sound.currentTime = 0ではインスタンスをリセットします。
sound.play()では音声を再生します。

関連付け

このタイプを指定します。
スクリーンショット 2021-02-21 8.23.27.png
これで完成です。Simulator Screen Shot - iPhone 8 Plus - 2021-02-21 at 10.31.52.png

細かいところ

音量を変更

sound.volume = 2.0//音量を2倍に上げる

再生回数を変える

sound.numberOfLoops = 1//音声を2回再生する

再生速度を変える

sound.enableRate = true//もしrateだけでは変更出来なかったらこちらを加えると良い
sound.rate = 3.0
3
1
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
3
1