概要
SwiftUIにて音(mp3)を鳴らす
流れ
① : 音(MP3ファイル)を用意する
② : 音をXCodeに追加する
③ : Swiftファイル(SoundPlayer.swift)を作成 → 音の読み込みを行う
④ : ContentView.swiftにコードを追加
⑤ : 実行
② : 音をXCodeに追加する
用意した音を「Assets.xcassets」へドラッグ&ドロップ
③ : Swiftファイル(SoundPlayer.swift)を作成 → 音の読み込みを行う
- フォルダ一覧にて右クリック
- 「NewFile」を選択
- 「Swift File」を選択
※ 「SwiftUI View」ではない - 名前を決めて保存
- コードを追加
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()
}
}
⑤ : 実行
ボタンを押すと音が鳴ることを確認