2011-08-10 9 views
1

私は微調整を作成しており、プログラムでMute/UnMuteを "オーバーライド"したいと思っています。iPhoneミュートをプログラムでオン/オフします。 (Force Mute/UnMute)

私はこれが完全にではないことを認識しています。 Appleが承認しました。

私はこれにどのようにアプローチしますか?現在、私はそうのように音量を下げて設定することができます:私はちょうどボリュームを変更するに固執するだろう

AVSystemController *AVSysController = [objc_getClass("AVSystemController") sharedAVSystemController]; 
[AVSysController setActiveCategoryVolumeTo:0.0]; 
+0

これはAppleが承認した方法ですか? – Oliver

+0

いいえ、Appleは「システムオーバーライド」コードを承認しません。 –

答えて

0

(一体、あなたは後でそれを「uがnmute」ことができ、それはそうであるために使用されるものを保存)。物理的なミュートスイッチがあるので、実際に自分でミュートを解除したときに電話機がミュートされているとスイッチから通知された場合は、ユーザーにとって混乱します(逆も同様です)。

+0

わかりましたが、私の質問に対する答えはありません。また、通常の状況ではユーザーにとって混乱しているように見えるかもしれませんが、コードは通常の状況には適していません。 –

+0

私が示唆したようにボリュームを保存、ゼロ調整、復元することでミュートをミュートするのはどうですか?それはユーザーによる実際のミュートと区別できますか? – tsm

+0

ボリュームを完全にゼロに設定することはできず、ユーザーの設定(振動、点滅など)は適用されません。再び、私の質問に対する答えではありません。 –

0

いいえ、できません。デバイス全体をミュート/ミュート解除するために使用できる物理スイッチが存在するため、使用可能なソフトウェア方法はありません。

プライベートAPIを使用しようとしたとしても、デバイス上で使用可能な物理スイッチと競合します。

利用可能な物理スイッチに敬意を表しているだけかもしれませんが、リンゴは意図的に同じ目的でソフトウェアAPIを提供していません。

+0

これは正当な方法では不可能です。デバイスをミュートするには、プライベートAPIを使用することはできますが、それには問題はありません。デバイスをプログラムでミュートする場合は、デバイスの物理スイッチを処理する必要があります。プログラムによる物理スイッチの処理方法 – macpandit

+0

あなたの指定したgithubのリンクをもう一度確認してください。音量をゼロにすることでミュート機能を達成したことが明確に分かります。彼らは実際にシステムをミュートしていません。システムをミュートしてボリュームをゼロに下げることは、2つの異なる技術的概念です。まず、あなたが実際に必要としていることを考えて、法的または違法な方法でそれを必要とします。 – macpandit

+1

これについてさらに議論したいのであれば、スタックオーバーフローはフォーラムではないので、チャットでこれを行う必要があります。 –

関連する問題