[iOS SDK] iPhone/iPad はサイレントモードにしても音が鳴る

公開日: : 最終更新日:2012/06/25 iPad, iPhone ,

この前、iOS5 を入れた iPad2 で おんぷちゃん for iPad から音が鳴らない、ほかのアプリからは音が鳴っているのでおんぷちゃんの問題ではないか、というレポートがユーザの方からあり、かなり急いで手元の iPad2 にiOS5を入れて試したところ、普通に音が鳴っていたので一安心した。
その後いろいろ調べていたところ、ユーザの方から、実は iPad2 がサイレントモードになっていたとの報告があり、一件落着した。

しかしその際にいろいろ試していたところ、実際には iPad をサイレントモードにしても、YouTube や iPod アプリからは音が鳴ることが判明した。
ユーザの方も、ほかのアプリ(こどもえいごずかん、Virtuoso)はサイレントモードになっていても音が鳴っていたとのことだった。これにより、おんぷちゃんの問題ではないかと判断されたとのことだった。

そういえば、確かにiPhone Core Audioプログラミングを読んだときにそういうことが書いてあった気がするが、実際に試したことはなかった。

確かに、Appleのオーディオセッションプログラミングガイド 2010-11-15 によると、

AVAudioSessionCategoryPlayback またはこれと同等の
kAudioSessionCategory_MediaPlayback— このカテゴリは、オーディオ再生が最も重要なア
プリケーションに対して使います。アプリケーションのオーディオは、画面がロックされた状
態や、着信/サイレントスイッチがサイレントに設定された状態でも再生します。

と書いてある。

カテゴリ識別子

着信/サイレントスイッチや画面のロックによって消音する

ほかのアプリケーションからのオーディオを許可

オーディオ入力(録音)と出力(再生)を許可

AVAudioSessionCategoryAmbient

kAudioSessionCategory_AmbientSound

o

o

出力のみ

AVAudioSessionCategorySoloAmbient

kAudioSessionCategory_SoloAmbientSound

o

x

出力のみ

AVAudioSessionCategoryPlayback

kAudioSessionCategory_MediaPlayback

x

デフォルトではx

AVAudioSessionCategoryRecord

kAudioSessionCategory_RecordAudio

×(画面がロックした状態でも録音は

継続)

x

入力のみ

AVAudioSessionCategoryPlayAndRecord

kAudioSessionCategory_PlayAndRecord

x

デフォルトではx

入力および出力

AVAudioSessionCategoryAudioProcessing

kAudioSessionCategory_AudioProcessing

x

入力、出力ともx

サイレントモードでも音が鳴るアプリはカテゴリに AVAudioSessionCategoryPlayback を指定しているのだろう。
確かにこうやって問題としてレポートが来たりすることを考えると、AVAudioSessionCategoryPlayback を指定していた方が安全だったりするとは思うが、しかしこれを使うとサイレントモードにしていても音が鳴ってしまうのでそれはそれで問題があると思うのだが。

Webを検索してみると、サイレントモードでも音が鳴ることに関してはバグとしてとらえている人も結構いることがわかった。
確かに、日本の携帯のマナーモードの挙動を考えると、音が鳴るのは驚きだと思う。

ところで、これを調べている間に知ったのだが、iPhone や iPad では音量ボタン-を押し続けると、一瞬で消音状態になる。
おそらくサイレントモードでも消音にならない場合はこの機能を使えということなのだろう。
また元の音量に戻すためには地道に+ボタンを押し続けるしかないのだが。

追記 2011/12/04

リズムくんのレビューでもメトロノームの音が鳴らないと書かれていて、こちらの方もおそらくサイレントモードになっているのではないかと。
iPhoneはともかくiPadのサイレントモード指定はわかりづらくなっているので、あきらめて今回のアップデートで AVAudioSessionCategoryPlayback に変更してみようかと。
このアプリは cocos2d の CocosDenshion を使っているが、CocosDenshion で AudioSessionCategory を変更する場合、(void) setMode:(tAudioManagerMode) mode を使えばよい。
指定するモードは下記の通りだった。

typedef enum {
	kAMM_FxOnly,					//!Other apps will be able to play audio
	kAMM_FxPlusMusic,				//!Only this app will play audio
	kAMM_FxPlusMusicIfNoOtherAudio,	//!If another app is playing audio at start up then allow it to continue and don't play music
	kAMM_MediaPlayback,				//!This app takes over audio e.g music player app
	kAMM_PlayAndRecord				//!App takes over audio and has input and output
} tAudioManagerMode;

ということで、kAMM_MediaPlayback を指定することにする。

追記 2012/01/17

リズムくん」の前回のアップデートで、サイレントモードでも音を再生する AVAudioSessionCategoryPlayback に設定したところ、やはりサイレントモードで音が再生されるのは不便との意見があった。
このため、元の仕様に戻そうかと考えているが、上記の通りサイレントモードで音が鳴らないと不具合として報告が来たりするため、何らかの対策は入れたい。
対策として、サイレントモードで起動された場合にはサイレントモードでは音が再生されない旨のメッセージを表示することを考えたが、どうやら iOS 5 からはサイレントモードの状態を取得できなくなっているようだ。
iphone – Detect Silent mode in iOS5? – Stack Overflow
理由は分からないが、どうも意図的に取得できないようにしている模様。
確かに Apple の Developer Forums でそういう書き込みがあった。この機能が必要であれば、Bug Reporter にリクエストしてくれとのこと。
書くか…

この件、こういう事件も起きている模様。
iPhoneは設計が間違ってる、もしくは情弱が使っちゃいけないモノらしい
確かにサイレントモードにしたら安心しそうではあります。
誰も書いていないけれども音量-ボタンをちょっと押しっぱなしにすれば完全ミュートになるのですが。
しかし、この仕様は昔からあるものだし、Appleの回答を見ても明らかに意図した動作になっている。
確かに、iPod touch にはサイレントモードのスイッチがないし、iPhoneにも将来ずっとサイレントモードがあるかは不明。
また、iPad はスイッチがあるがサイレントモードのOn/Offと、画面の回転のOn/Offのスイッチの切替式になっている。

iPhone Core Audioプログラミング
iPhone Core Audioプログラミング 永野 哲久ソフトバンククリエイティブ 2009-11-12
売り上げランキング : 113825

Amazonで詳しく見る

by G-Tools

関連記事

no image

Apple iPod touch 第4世代 8GB MC540J/A 注文

Retinaディスプレイとジャイロセンサーを使ってみたかったので、数時間迷った末 Appleのオンラ

記事を読む

開発用iPad比較検討2016

手持ちのiPad2およびiPad mini 初代がiOS10のサポート対象から外れてしまったので、i

記事を読む

PebbleKit iOS SDK dynamic framework 問題

最近 EverLearn の Pebble アプリがiOSアプリと接続できずエラーが表示されるので、

記事を読む

iPad Pro 2017 12.9inch購入

新型コロナウィルスの影響でリモートワークの機会が増えているため、リモートワークをサポートす

記事を読む

no image

Corona SDK 調査2日目

昨日はとりあえずCorona SDKを使って付属のLuaのサンプルアプリをiPhone実機上で動かし

記事を読む

no image

SwitchEasy NUDE for iPhone5 を買ってみた。まだ様子見の方がよさそう

SwitchEasy NUDE for iPhone 5 UltraClearSwitchEasy

記事を読む

Appleシリコン搭載Mac発表?

いつからか、下記の文言が App Store Connect で表示されるようになった。

記事を読む

no image

Pebble E-Paper Watch 届いた! 感想。

追記: Pebble 向けにアプリを作りました。 Kickstarter で iPhone/A

記事を読む

no image

iPhone/Androidアプリで週末起業(山崎潤一郎著) を読んでみた。

前著を読んで、ちょっと楽観的に書きすぎていると思ったけれどもとりあえず最新版が出たので読んでみた。

記事を読む

no image

Universal アプリのテスト

iPhoneアプリとBluetoothで通信するUniversalなアプリをしばらく作っていたが、よ

記事を読む

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Developer Strap が日本でも購入可能に

USアカウントでしか購入できなかった Vision Pro 用 De

Vision Pro カバーケースを買ってみた

[itemlink post_id="11629"]

ZEISS Optical Insertsが左右逆で届いている人がいるらしい(自分は大丈夫だった)

Vision Pro はメガネを付けての使用ができないため、

祝Apple Vision Pro 日本発売

昨日 2024/06/28 ついに日本でも Apple Vi

初visionOSアプリをApp Storeに提出

日本での Apple Vision Pro 発売に1日遅れてしまった

→もっと見る

PAGE TOP ↑