0

Androids MediaPlayer を使用してサービスから音楽を再生しています。音楽の再生中は、音量ロッカー キーで音楽の音量を変更できます。ただし、再生中にユーザーが音楽の音量を変更できるようにしたくありません。

これはどのように行うことができますか?

keydown イベントを取得して true を返す場合は可能ですが、それはアプリが一番上にある場合にのみ機能します。私はサービスから音楽を再生しているので、画面オフ時やアプリのバックグラウンドでも再生されるため、音量を変更することもできます。

私が持っていた別のアイデアは、電話することです

setVolumeControlStream( AudioManager.STREAM_RING );

音楽の再生を開始した後ですが、これをサービスから呼び出すことはできませんが、アクティビティからのみ呼び出すことができます...

または、別のストリーム (リングまたはアラーム) で音楽を再生することは可能ですが、音量ロッカーで音楽ストリームを変更することはできますか?

何か案は?

4

2 に答える 2

0

アプリケーションがバックグラウンドにある間はキーをインターセプトできませんが、KeyPress 自体をリッスンする代わりに. ContentObserver を登録できます。

音量変更のブロードキャスト アクションはありますか?

于 2012-05-15T11:57:04.240 に答える
0

別の方法が見つからないので、音量が変更されたかどうかを 1 秒あたり約 5 回タイマーでチェックします。もしそうなら、私はそれを元に戻します。

これは本当に醜い解決策ですが、うまくいきます。他に方法がない場合は、このままにしておく必要があります。

唯一の本当に恐ろしいことは、音量ロッカーを押すと音量ダイアログが表示されることです。音量ダイアログを無効にする方法はありますか?

または、より良い解決策を知っていますか?

于 2012-05-18T18:55:32.113 に答える