2

ボリューム onResume をミュートし、ボリューム レベルを onPause で AudioManager に戻す必要がありますか?

または、これを行う別の適切な方法はありますか?

ありがとう!

4

2 に答える 2

2

あなたの答えはのドキュメントにあると思いますsetStreamMute()

ミュート コマンドは、クライアント プロセスの停止から保護されています。ストリーム上でアクティブなミュート要求を持つプロセスが停止した場合、このストリームは自動的にミュート解除されます。

特定のストリームに対するミュート リクエストは累積的です。AudioManager は 1 つ以上のクライアントから複数のミュート リクエストを受け取ることができ、同じ数のミュート解除リクエストが受信された場合にのみ、ストリームのミュートが解除されます。

ユーザー エクスペリエンスを向上させるために、アプリケーションは onPause() でミュートされたストリームのミュートを解除する必要があり、必要に応じて onResume() でミュートが再び行われます。

于 2011-01-19T14:44:17.250 に答える
0

誰かが興味を持っている場合は、アプリがすべてをミュートしないようにするための回避策があります。次の操作を行うと、音量キーがミュートされ、着信コールの通知はシステムで構成されたままになります (強制的にミュートされるのではなく)。

setVolumeControlStream(AudioManager.STREAM_DTMF);
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamMute(AudioManager.STREAM_DTMF, true);
于 2015-10-13T17:14:58.593 に答える