Swift

【Swift】AudioToolbox iOSにもともと備わっている音源とバイブレーションを使う

 

iPhoneのシステムにもともと備わっており、よく耳にする音やバイブレーションの使い方をご紹介します。

 

今回はAudioToolboxというフレームワークを使用します。

AudioToolbox

Appleのドキュメントには

Record or play audio, convert formats, parse audio streams, and configure your audio session.

録音、再生、音声のストリーム解析してそれを提供しますよーって書いてありますが、

サウンドの再生やバイブ等をユーザーに知らせられるよみたいな感じです。

サウンドの再生方法にはもう一つ

AVFoundationというフレームワークというのもあります。

主に使い分けとして

AVFoundation The動画って音源(BGM等)

AudioToolbox   サブで出てくる音源(効果音等)

で使い分けるといいかと思います。

では実際に今回説明するAudioToolboxのコード例を書いていきます。

 

サウンド再生

 

var soundIdRing:SystemSoundID = 1016
if let soundUrl = CFBundleCopyResourceURL(CFBundleGetMainBundle(), nil, nil, nil){
    AudioServicesCreateSystemSoundID(soundUrl, &soundIdRing)
    AudioServicesPlaySystemSound(soundIdRing)
}

 

サウンドを流したいタイミングにサウンドを流します。下ではViewがloadされた時に

メールが届いた時の様な音を鳴らしています。

このSystemSoundIDによって音源が変わってくる仕組みです。

音源の種類に関してはこちらを参考にしてください。

https://github.com/TUNER88/iOSSystemSoundsLibrary

override func viewDidLoad() {
    super.viewDidLoad()
   
    //ベル
    var soundIdRing:SystemSoundID = 1000
    if let soundUrl = CFBundleCopyResourceURL(CFBundleGetMainBundle(), nil, nil, nil){
        AudioServicesCreateSystemSoundID(soundUrl, &soundIdRing)
        AudioServicesPlaySystemSound(soundIdRing)
    }
}

 

バイブレーション

// どのバイブレーションを鳴らすか
let systemSoundID = SystemSoundID(kSystemSoundID_Vibrate)
// 繰り返し用のコールバックをセット
AudioServicesAddSystemSoundCompletion(systemSoundID, nil, nil, { (systemSoundID, nil) -> Void in
}, nil)
AudioServicesPlaySystemSound(systemSoundID)

 

こちらは一度しかなりませんが、書き方次第で無限にバイブレートさせることが可能です。

ABOUT ME
goto
海外事業担当兼iOSエンジニア。 元々海外に行くことが好きで、海外で知り合った方に、CEO馬谷の話を聞き2019年2月に株式会社Playgroundに入社。 今も海外での生活、海外での仕事に憧れている。 今個人的にプライベートで行きたい国はイスラエルとポーランド。

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA