Pocket

AVAudioSessionでヘッドフォンの抜き差しを検知する

こんにちは、プログラマのLFです。

いま実装しているiOSアプリで
AVAudioPlayerの再生中にヘッドフォン(イヤホン)の抜き差しが発生したときに
再生を一時停止したり、再度再生したりする処理を実装する必要が生じました。

手元の書籍(過去記事参照)で調べたところ
「AudioToolbox」フレームワークの「AudioSession」クラスを
利用することで可能なことがわかりましたが、
「AudioSession」クラスはiOS7以降では非推奨となってしまったため
代わりの方法をGoogle先生にお聞きしたところ

「AVFoundation」フレームワークの
「AVAudioSession」クラスを利用することで代用が可能とのこと。

しかし、いろいろ調べたのですがそのものズバリなサンプルコードがなかなか見つからず。
みなさん困っていないのかしら。
それぐらい自分ですらすら書けてしまうということなのかな。

検索ワードをいろいろ変えながらなんとかサンプルコードを見つけることができたので
同じ問題にぶつかった方がもしいらっしゃったときのために
サンプルコードを載せておきます。
おそらく自分の備忘録になる可能性が高いですが(苦笑)

参考サイト:
さくっとヘッドホンの抜き差しを取得する 

Pocket