iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 16
0

在前篇實作錄音功能中使用到了 AVAudioSession 這個屬於 AVFoundation 架構下的功能,本篇來談談AVAudioSession 的功用為何。

Speaker 及 Microphone 這兩者作為平台上(iphone、ipad、mac)唯一的收發聲硬體元件,當多個 app 都需要使用時該怎麼協調讓彼此不會產生衝突?
e.g.
當開啟靜音模式時又想播放音樂、播放音樂時也可收到其他 app 的通知警告音


如上圖所示,OS 端即是透過 AVAudioSession 來協調眾多 app 對 Speaker 及 Microphone 的使用時機。

AVAudioSession 使用方式如下,先透過 setCategory() 將 app 對於 Speaker 及 Microphone 所需之使用方式設定好後,在使用 setActive() 來啟用設定。

recordingSession.setCategory(AVAudioSessionCategoryPlayAndRecord)
recordingSession.setActive(true)

在錄音時需改變設定為 AVAudioSessionCategoryPlayAndRecord 的原因是所有的 apple OS 的預設行為是不允許 app 來錄音,因此若是要使用錄音這功能時必須自行改變。預設行為可參考 Audio Session Programming Guide。

Reference
Audio Session Programming Guide
Audio Session specification


上一篇
iOS App 實作(12)錄音功能(AVAudioRecorder)
下一篇
iOS App 實作(13)Auto Layout
系列文
30天Swift入門學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言