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
株式会社Playgroundのサービス
- 無料・簡単・片手でホームページを作成できる自社サービス Rakwi
- Web制作とアプリ開発を学べるオンラインプログラミング講座 Upstairs
- 開発,DX推進支援サービス スタートアッププラン