MP3などの音楽ファイルをAsset Catalogに保管している場合、Bundle.main.path()でパスを取得しようとするとnilが返って来るため、別の方法で対処する必要があります。
その方法をこの記事では紹介します。
準備
まずは、Asset Catalogの中に使用したい音楽ファイルを追加しておきます。
実装方法
Asset Catalog内の音楽ファイルを再生するには次のような流れになります。
- AVFoundationのインポート
- Asset Catalog上の音楽ファイルを取得
- 音楽ファイルを再生するプレイヤーを生成
- 音楽ファイルを再生
import UIKit
import AVFoundation // ① AVFoundationをインポート
class ViewController: UIViewController {
// AVAudioPlayerのインスタンス宣言
var audioPlayer:AVAudioPlayer!
override func viewDidLoad() {
super.viewDidLoad()
}
// 再生ボタンが押されたら実行
@IBAction func playButtonPressed(_ sender: UIButton) {
// ② 音楽ファイルを取得。ファイルがなければ以降の処理を中断
guard let soundFile = NSDataAsset(name: "sample") else {
print("Not Found")
return
}
// ③ 音楽プレイヤーを生成(AVAudioPlayerのインスタンス化)
audioPlayer = try! AVAudioPlayer(data:soundFile.data, fileTypeHint:"mp3")
// ④ 音楽ファイルの再生
audioPlayer!.play()
}
Asset Catalog上の音楽ファイルはNSDataAssetを使うことで取得ができます。
nameの項目には音楽ファイル名を記述してください。
created by Rinker
¥3,536
(2024/11/22 14:04:54時点 Amazon調べ-詳細)
(2024/11/22 14:04:54時点 Amazon調べ-詳細)