0
0

iOS / macOSアプリでAssets内の音声ファイルを再生する

Posted at

開発中のiOSアプリで、Bluetoothから送られてくるデータで異常を検出したとき、「音」と「振動」で知らせる必要に迫られました。

まずはAVFoundationをインポートします。

import AVFoundation

音声ファイルを用意します。今回はシンセサイザーのバーチャルアナログ音源を使って簡単なビープ音を作り、それをWAVファイルにエクスポートしました。
そのファイルAssetsへ入れます。
Assetsに音声ファイルをドラッグ&ドロップします。
ソースコード内で参照する名前をつけます。今回は「Sending Sound」という名前にしました。
スクリーンショット 2024-06-02 21.52.40.png

AVAudioPlayerのプロパティを宣言します。

private var sendingSound: AVAudioPlayer!

Assetsからオーディオファイルのオブジェクトを取得します。
オーディオファイルは確実に存在するので、今回はエラー処理は省略しています。

let soundFile = NSDataAsset(name: "Sending Sound")!

AVAudioPlayerのオブジェクトを生成します。

sendingSound = try? AVAudioPlayer(data: soundFile.data, fileTypeHint: "wav")

あとは再生、ポーズ、音量変更などのメソッドを呼び出せば簡単に使えます。

sendingSound.play()  //再生
sendingSound.play()  //停止
sendingSound.pause() //ポーズ(綺麗に再生解除ができる)
sendingSound.setVolume(volume: Float, fadeDuration: TimeInterval)
sendingSound.currentTime = 0 //再生位置を先頭に戻す
sendingSound.numberOfLoops = -1 //ループ回数して、-1で無限ループ

このほかにもいろんなメソッド、プロパティが用意されています。
ひとまず、これらを利用すれば簡単に音声ファイルの再生をできることがわかりました。
iOS、macOSどちらも同じソースコードで動作します。

0
0
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
0
0