LoginSignup
5
3

More than 1 year has passed since last update.

【SwiftUI】AVAudioPlayerを使用して音楽を再生

Last updated at Posted at 2021-09-17

概要

SwiftUIにて音(mp3)を鳴らす

流れ

① : 音(MP3ファイル)を用意する
② : 音をXCodeに追加する
③ : Swiftファイル(SoundPlayer.swift)を作成 → 音の読み込みを行う
④ : ContentView.swiftにコードを追加
⑤ : 実行

② : 音をXCodeに追加する

用意した音を「Assets.xcassets」へドラッグ&ドロップ
スクリーンショット 2021-09-17 21.27.11.png

③ : Swiftファイル(SoundPlayer.swift)を作成 → 音の読み込みを行う

  1. フォルダ一覧にて右クリック
  2. 「NewFile」を選択
  3. 「Swift File」を選択 ※ 「SwiftUI View」ではない
  4. 名前を決めて保存
  5. コードを追加

スクリーンショット 2021-09-17 21.31.02.png

スクリーンショット 2021-09-17 21.32.18.png

SoundPlayer.swift
import UIKit
import AVFoundation

class SoundPlayer: NSObject {

    let music_data=NSDataAsset(name: "music")!.data   // 音源の指定
    var music_player:AVAudioPlayer!

    // 音楽を再生
    func musicPlayer(){

        do{
            music_player=try AVAudioPlayer(data:music_data)   // 音楽を指定
            music_player.play()   // 音楽再生
        }catch{
            print("エラー発生.音を流せません")
        }

    }

    // 音楽を停止
    func stopAllMusic (){
        music_player?.stop()
    }
}

④ : ContentView.swiftにコードを追加

ContentView.swift
import SwiftUI

struct ContentView: View {

    let musicplayer = SoundPlayer()   // インスタンス化
    var body: some View {

        // ボタン
        Button(action:{

            // 音を再生
            musicplayer.musicPlayer()

        }){

            // ボタンのデザイン
            Text("MUSIC")
                .padding(60)
                .background(Color.red)
                .foregroundColor(Color.white)
                .cornerRadius(40)
        }

    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

⑤ : 実行

ボタンを押すと音が鳴ることを確認

5
3
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
5
3