Play sound effect on iPhone app

在 AudioToolbox 的 framework,我們可以使用 AudioServicesPlaySystemSound 來播放音效。這個 function 可以播放簡短的聲音 (30 秒以內)。因為這個聲音會播放超過幾秒鐘,所以他是非同步的方式。想要知道音樂是否播放完畢,也有另外一個 AudioServicesAddSystemSoundCompletion 透過註冊 callback 的來查看。在使用上要注意有些限制:
  • 播放音效檔案不能超過 30 秒鐘
  • 必須符合 PCM 或者 IMA4 (IMA/ADPCM) 格式
  • 必須包裝成 .caf, .aif, 或者 .wav 檔案
使用 AudioServicesPlaySystemSound 因為簡單,所以他是使用系統播放音量,不能程式控制聲音大小、馬上播放性質、不能重複播放和跳到特定位置、一次只能播放一個聲音。

程式來看看如何使用 AudioServicesPlaySystemSound:

定義 SystemSoundId

初始化註冊

播放

結束釋放

以上透過這樣,即可讓想要播放的時機點,快速的播放聲音出來。使用此功能不能播放 mp3 檔案,所以想要播放比較大型複雜的音樂檔案,要另外參考 AVAudioPlayer。

Comments