[SwiftUI]アラームを鳴らすにはどうしたらいい?

SwiftUI
スポンサーリンク

AvFoundation

SwiftUIでアラームを鳴らすには、AVFoundationフレームワークを使います。

AVFoundationは、音源、動画、画像などを扱いやすくしてくれるフレームワークです。

アラームの実装

アラームを実装するには、次の手順が必要です。

  1. 音源をアセットカタログに登録
  2. コード側で音源データを取得
  3. AudioPlayerを用意
  4. アラームを鳴らす関数を実装
  5. アラームを鳴らすタイミングで関数を呼び出す

1.アセットカタログに音源を登録

アラームに使用する音源を用意し、アセットカタログに登録します。

登録名は好きな名前にしてください。

ここでは、「bell」という名前にしました。

2. コード側で音源データを取得

まず、NSObjectを継承したアラーム用のクラスを作り、その中でコード側で音源データを取得します。

class AlarmSound: NSObject {
    
    //音源データを取得
    let alarm = NSDataAsset(name: "bell")!.data
    
    
}

アセットカタログのデータは、NSDataAssetを使って取得します。

3.AudioPlayerを用意

AVFoundationをインポートし、AudioPlayerを用意します。

AudioPlayerは、音源を再生するためのものです。

class AlarmSound: NSObject {
    
    //音源データを取得
    let alarm = NSDataAsset(name: "bell")!.data
    
    //AudioPlayerを用意
    var audioPlayer : AVAudioPlayer!
    
}

4. アラームを鳴らす関数を実装

func alarmPlay() {
        do {
            
            //音源を再生するプレイヤーを格納
            self.audioPlayer = try AVAudioPlayer(data: alarm)
            
            //再生
            audioPlayer.play()
            
        } catch {
            
            print("再生できませんでした")

        }
        
    }

AudioPlayerの変数に、音源データを登録したAudioPlayerのインスタンスを渡します。

この時、エラーが起こるかもしれないので、try文を使っています。

playメソッドで音源を再生します。

5.アラームを鳴らすタイミングで関数を呼び出す

あとは、アラームを鳴らすタイミングで関数を呼び出しましょう。

全体のコード

import SwiftUI
import AVFoundation

class AlarmSound: NSObject {
    
    //音源データを取得
    let alarm = NSDataAsset(name: "bell")!.data
    
    //AudioPlayerを用意
    var audioPlayer : AVAudioPlayer!
    
    func alarmPlay() {
        do {
            
            //音源を再生するプレイヤーを格納
            self.audioPlayer = try AVAudioPlayer(data: alarm)
            
            //再生
            audioPlayer.play()
            
        } catch {
            
            print("再生できませんでした")
        }
        
        
    }
}

おすすめの記事

[SwiftUI][iOS]UIKitの使い方(1)〜ビューの表示〜

2021/5/18

「SwiftUIでUIKitを使いたい」

「SwiftUIでUIKitを使う時には、どうしたらいいの?」

と言う人に向けてこの記事は書かれています。

どうも、ちょげ(@chogetarou)です。

基本的には、SwiftUIのみでiOSアプリを作ることが出来ます。

ですが、どうしてもUIKitを使わなきゃいけない場面が出てきます。

そこで、この記事では、SwiftUIでUIKitを使う方法について解説します。

コメント

タイトルとURLをコピーしました