ひとつの View だけで
その端末の組み込みのシステム音を
確認できたらいいかも、
ということで。
GIF って音声出ませんでした ?
以下、音が出てます。
確認の範囲として、
SystemSoundID は 1 から 4000 まで。
実際に音を並列で鳴らして 0.0025 秒以下の音は無視してます。
非同期の処理はここでも難しい印象を受けます。
ひとつの View だけで
その端末の組み込みのシステム音を
確認できたらいいかも、
ということで。
GIF って音声出ませんでした ?
以下、音が出てます。
確認の範囲として、
SystemSoundID は 1 から 4000 まで。
実際に音を並列で鳴らして 0.0025 秒以下の音は無視してます。
非同期の処理はここでも難しい印象を受けます。
Audio MIDI 複数出力装置と仮想デバイス BlackHole を使って、QuickTime で聴きながらの音声付き録画。
なぜできないのか。
聴きながらができないんです。
シュミレータにも、Audio Output の設定があるので、
そこで、個別に BlackHole に向けてもダメ。
複数音声出力 から BlackHole 向きを外してもダメ。
シュミレータを音声付き録画するなら聴きながらはできない。
そういうものなの?
できても良さそうなのに。
Loopback など有料アプリならできるのですか ?
ちょっとしたときに、
あらかじめ用意されているシステム音を使いたい。
AudioServicesPlaySystemSound(1000)
👉 AudioServicesPlaySystemSound(_:) | Apple Developer Documentation
これだけで音が鳴る。
「1000」 は SystemSoundID というもののようなので、
「どんな音が鳴るのかリスト」を探すが、
公式で見つけられなかった。
以下にそれらしきもの。
👉 AudioServices - iPhone Development Wiki
結構、古そうなので今どきの状態を確認したい。
OSやバージョンなど環境によっても違うっぽい。
なので、コードからのぞいてみる。
ID は 2000 ぐらいまでの整数なのですが、
非公式のリストを見る限り、番号が歯抜け状態。
音声データの長さで「欠番らしき」を見分ける。
実際に再生してその時間を取得しました。
let start = Date()
AudioServicesPlaySystemSoundWithCompletion(1000) {
let elapsed = Date().timeIntervalSince(start)
print(elapsed)
}
// 1.566209077835083
👉 AudioServicesPlaySystemSoundWithCompletion(_:_:) | Apple Developer Documentation
おおまかに 再生時間 50ミリ秒 以下が欠番っぽい。
ボタンを並べて Preview や Simulator や 実機 でどんな音があるのか確かめます 。
極力、deprecated な関数は避けていきたいです。
実際に音声ファイルを作成する前に、雰囲気を確認したいときに使いたくなります。
しかし、ID が分からない。
そんな人用。
ファイルで探すなら、各環境内でディレクトリ名で走査するといいのですね !
Library/Audio/UISounds
❯ tree .
.
├── 3rd_party_critical.caf
├── AuthenticationMatch_Full.caf
├── AuthenticationMatch_Short.caf
...
├── ussd.caf
├── warsaw.caf
└── wheels_of_time.caf
4 directories, 321 files
あと、アプリとかショートカットもありました。
👉 「Play System Sounds」をApp Storeで
👉 System Sounds - Shortcuts