概要
swift4で AVAudioPlayer
を使ってサウンドを再生する
環境
macOS Sierra 10.12.6
Xcode 9.2
swift4
コード
AVFoundation
のインポート
ViewController.swift
import AVFoundation
ViewController
に AVAudioPlayer
のインスタンスを宣言
ViewController.swift
class ViewController: UIViewController {
var audioPlayer: AVAudioPlayer!
// 省略
}
ViewController
に AVAudioPlayerDelegate
を継承させて拡張
ViewCountrollerクラス
の下に、以下のコードを追記する。
ViewController.swift
extension ViewController: AVAudioPlayerDelegate {
func playSound(name: String) {
guard let path = Bundle.main.path(forResource: name, ofType: "mp3") else {
print("音源ファイルが見つかりません")
return
}
do {
// AVAudioPlayerのインスタンス化
audioPlayer = try AVAudioPlayer(contentsOf: URL(fileURLWithPath: path))
// AVAudioPlayerのデリゲートをセット
audioPlayer.delegate = self
// 音声の再生
audioPlayer.play()
} catch {
}
}
}
再生させたいタイミングでメソッドを呼ぶ
音源ファイルがSOUND_NAME.mp3
だった場合
playSound(name: "SOUND_NAME")
以上のコードで音声ファイルが再生できます。
画面load時にすぐに再生する場合のViewController全体コード
ViewController.swift
import UIKit
import AVFoundation
class ViewController: UIViewController {
var audioPlayer: AVAudioPlayer!
override func viewDidLoad() {
super.viewDidLoad()
// mp3音声(SOUND.mp3)の再生
playSound(name: "SOUND_NAME")
}
}
extension ViewController: AVAudioPlayerDelegate {
func playSound(name: String) {
guard let path = Bundle.main.path(forResource: name, ofType: "mp3") else {
print("音源ファイルが見つかりません")
return
}
do {
// AVAudioPlayerのインスタンス化
audioPlayer = try AVAudioPlayer(contentsOf: URL(fileURLWithPath: path))
// AVAudioPlayerのデリゲートをセット
audioPlayer.delegate = self
// 音声の再生
audioPlayer.play()
} catch {
}
}
}