0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【SwiftUI】AVFoundationを使って音を鳴らす

Last updated at Posted at 2025-03-03

はじめに

SwiftUIで、音を扱うことができるフレームワークである 『AVFoundation』 を利用してアプリ上で音を鳴らす方法について学習したので、内容をまとめます。

環境

【Xcode】16.2
【iOS】18.2
【macOS】Sequoia 15.3.1

AVFoundationとは

Appleが提供するフレームワークの一つで、音声や動画の再生、録音、編集、ストリーミングなど、メディアコンテンツを扱うための機能を提供します。主に、iOSやmacOSアプリで音声・映像の処理を行う際に使用されます。

AVFoundationを使って音を鳴らす処理を実装する流れ

  1. Assets.xcassetsに、使用する音源ファイルを取り込む。
  2. 音を鳴らすためのプログラムを記述するファイル(SoundPlayer.swift)を作成する。
  3. SoundPlayer.swiftで 『AVFoundation』 を読み込む。
  4. 音源データの読み込みとプレイヤーを宣言し、音を鳴らす処理を記述する。
  5. 音を鳴らす処理を実装したいファイル(ContentView.swift)で、音を鳴らす処理を呼ぶ。

実装方法

1.Assets.xcassetsに、使用する音源ファイルを取り込む。

スクリーンショット 2025-03-03 18.00.59.png

Assets.xcassetsのフォルダに、使用する音源ファイルをドラッグ&ドロップで取り込みます。
ここではcymbalSoundという音源ファイルを取り込んでいます。

2.音を鳴らすためのプログラムを記述するファイル(SoundPlayer.swift)を作成する。

スクリーンショット 2025-03-03 17.52.05.png

SwiftUIでは、画面を表示する部品と音などのプログラムを分けて作る必要があるので、新しく「SoundPlayer.swift」というファイルを作成します。
command + N のショートカットキーで、新しいファイルを作成することができます。
テンプレートは Cocoa Touch Class を選択します。

3.SoundPlayer.swiftで 『AVFoundation』 を読み込む。

スクリーンショット 2025-03-03 17.53.28.png

音を扱うことができるフレームワークである 『AVFoundation』 を、

import AVFoundation

で読み込みます。

4.音源データの読み込みとプレイヤーを宣言し、音を鳴らす処理を記述する。

スクリーンショット 2025-03-03 18.02.30.png

まず、定数cymbalDataに音源データを格納します。
NSDataAssetが、Assets.xcassets内のファイルや画像を管理しているクラスです。
取り込んだ音源ファイル名(ここではcymbalSound)を指定し、ファイルの内容を取得します。
データは確実に存在しているため、「!」で強制アンラップしています。
続いて、AVAudioPlayerを利用して、シンバルを鳴らすインスタンス変数を用意しています。
AVAudioPlayer は音源ファイルを再生できるようにする機能です。

5.音を鳴らす処理を実装したいファイル(ContentView.Swift)で、音を鳴らす処理を呼ぶ。

スクリーンショット 2025-03-03 19.11.29.png

ContentView.swift内でSoundPlayerを実行できるよう、

let soundPlayer = SoundPlayer()

でインスタンス変数を用意します。
"シンバル"というボタンを押したらシンバルの音が鳴るように処理を実装します。

soundPlayer.cymbalPlay()

と記述することで、SoundPlayer内のcymbalPlay()を実行します。

まとめ

・AVFoundationは、音声や動画の再生、録音、編集、ストリーミングなど、メディアコンテンツを扱うための機能を提供するフレームワーク。
・画面を表示する部品と音などのプログラムは、ファイルを分けて作成する。
・import AVFoundationでAVFoundationフレームワークを読み込む。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?