2011-12-22 13 views
2

アプリケーションがバックグラウンドのときにUILocalNotificationが生成されると、デバイスの音量を(サイレントモードで)どのように設定できますか?私はアラームアプリに取り組んでいるので、サウンドもサイレントモードで再生する必要があり、私はローカル通知を使ってアプリアラームを処理しています。デバイスの音量を設定する - UILocalNotification - iphoneをサイレントモードにする

この問題でひどく詰まり、サイレントモードでアラームを再生できません。

助けてくださいは...

+0

サイレントスイッチが理由であります... – Ahti

+1

しかし、アラームもサイレントモードで再生する必要があります.. –

+0

私はそれには同意しません。デバイスは振動するはずですが、サウンドを再生する必要はありません。私はそれが実際にあなたのデバイスが静かに(私のiPhoneのアラートを見つけるようなものを除いて)保つことを保証していない場合に良いサイレントモードであることを意味しますか?ユーザーがそれを直接起動したとき再生またはsthのような)が、それはすべてです。 (もしリンゴがこれを行うならば、もし彼らがそれを変えなければならないのですか?) – Ahti

答えて

0

ローカル通知もトリガーされたアプリが殺されていることを認識する必要があります。それはおそらくそれを行うことは不可能であるという結論に私を導く。 しかし、あなたは、このようなことを試すことができます。

 
UInt32 sessionCategory = kAudioSessionCategory_AmbientSound; 
      AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory); 

を、あなたのオーディオセッションをアクティブにし、右の前に。

+1

返信いただきありがとうございました。しかし、AVAudioPlayerを使用して通知を再生しているわけではありません。ローカルの通知はオペレーティングシステムから発生します。これがうまくいくと思うなら、サンプルコードを書いて助けてください。 –

3

単純にできません。 UILocalNotificationポップアップとサウンドは別のシステムプロセスによって生成され、そのプロセスはデバイスのサイレントモードを監視するため、デバイスがサイレント状態の場合は通知音は再生されません。

デバイスがサイレントモードでもアラーム音を鳴らしたい場合は、アプリからアラーム音を直接再生する必要があります。これを行うには、アプリをバックグラウンドで実行し続ける必要があります。バックグラウンドでアラーム音ファイルを再生する必要があります。後者はinfo.plistの "Required background modes"プロパティ( "plist"ファイルにそのプロパティを追加する必要があります) "audio"を指定することで行うことができます。AVAudioPlayerを使用する方法があります

[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil]; 

・ホープ、このことができます:デバイスはこのようなオーディオセッションのカテゴリを設定することで沈黙している場合でも、音を再生します。

関連する問題