4

アプリ内からデバイスの呼び出し音をミュートしようとしていますが、何らかの理由で、この回答 ( iOS システム サウンドを無効にする方法)のように AVSystemController を使用しても、デバイスを完全に無音にすることはできません..音量は 1 バーですが、完全に無音ではありません。

おそらく AVSystemController のようなプライベート API を使用して実行できることはわかっています。また、ユーザーがアプリにこの種の機能を期待している場合、Apple は引き続きアプリを承認することを知っています ( App Storeで見つけた 2 つのアプリが既にあるため)。ジェイルブレイクなどを必要とせずに、プログラムでデバイスをミュートします)。

それらのアプリは実際にはもっと良いことをします - 音量をゼロに下げるだけでなく、実際のミュートを実際に切り替えます.

これが行われている方法を知っている人はいますか?

どんな助けでも大歓迎です!ありがとう!

4

1 に答える 1

1

これは私にとってはうまくいきました。ゲームでサウンドのオンとオフを切り替えるボタンがあります。サウンドをオンにしたい場合は float を 10 に設定し、サウンドをオフにしたい場合は float を 0 に設定します。

float value = 0.0f;
AudioSessionSetProperty(kAudioSessionProperty_CurrentHardwareOutputVolume, sizeof(float), &value);

アップデート:

iOS 9.1 でまだ機能している別のオプション

float vol = [[AVAudioSession sharedInstance] outputVolume];
NSLog(@"output volume: %1.2f dB", 20.f*log10f(vol+FLT_MIN));

スイフトの場合:

let volume = AVAudioSession.sharedInstance().outputVolume   
print("Output volume: \(volume)")

更新プログラムの回答のソース: Get System Volume iOS

于 2015-01-27T23:22:08.617 に答える