プログラムでmediaplayerの音量を設定する方法。アラーム通知に使用します。どんな助けも大歓迎であり、事前に感謝します。
AudioManagerを使用すると、メディアプレーヤーの音量を制御できます。
AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 20, 0);
mediaPlayerからも(しかし、私はそれを試しませんでした)
public void setVolume (float leftVolume, float rightVolume)
以降:APIレベル1
このプレーヤーの音量を設定します。このAPIは、アプリケーション内のオーディオストリームの出力のバランスを取るために推奨されます。ユーザー設定を制御するアプリケーションを作成する場合を除き、特定のタイプのすべてのストリームのボリュームを設定するsetStreamVolume(int、int、int)よりもこのAPIを優先して使用する必要があります。渡されるボリューム値は生のスカラーであることに注意してください。 UIコントロールは対数的にスケーリングする必要があります。
パラメーター
leftVolume左ボリュームスカラー
rightVolume右ボリュームスカラー
この助けを願っています
audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
ボリュームアップ
audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);
ボリュームダウン
audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI);
ボリュームコントロールUIを非表示にするには:
audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
ボリュームアップ用
audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
AudioManager.ADJUST_RAISE, 0);
ボリュームダウン用
audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
AudioManager.ADJUST_LOWER, 0);
これを読んでください ページ ここで。それは非常によく説明しています。基本的に、アプリが交換用の目覚まし時計でない限り、「onCreate()」関数で次の呼び出しを行う必要があります。
setVolumeControlStream(AudioManager.STREAM_MUSIC);
このようにして、ハードウェアボタンを使用してアプリのボリュームを作成できます。
コード:
AudioManager mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
try
{
float count = 100 * 0.2f;
Log.d("--count_float", count + "");
Log.d("--count_final", Math.round(count) + "");
Log.d("--count_volume", new
PreferenceMotionSensor(mContext).getStreamVolume());
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, Math.round(count), 0);
}
catch (Exception e)
{
Log.d("--Error", e.getMessage());
}
出力
D/--count_float: 20.0
D/--count_final: 20
D/--count_volume: 100
以下のコードは、ボリュームを最大レベルに設定します(getStreamMaxVolume())。
AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
am.setStreamVolume(AudioManager.STREAM_MUSIC,am.getStreamMaxVolume(AudioManager.STREAM_MUSIC),0);
Kotlin
を使用して以下を実行できます。このコードは、メディアのボリュームがデバイスの最大ボリュームの20%を超えているかどうかを確認し、20%のみに減らします。
val audio = this.getSystemService(Context.AUDIO_SERVICE) as AudioManager
val level = audio.getStreamVolume(AudioManager.STREAM_MUSIC)
val maxVolume = audio.getStreamMaxVolume(AudioManager.STREAM_MUSIC)
val percent = 0.2f
val twintyVolume = (maxVolume * percent).toInt()
if ( level > twintyVolume) {
Toast.makeText(this,"audio level is $level", Toast.LENGTH_LONG).show()
audio.setStreamVolume(AudioManager.STREAM_MUSIC,twintyVolume,0)
}
これを試して
protected static void setVolume(int volume) {
currentVolume = volume;
{
if (volume == 1) {
volume = 2;
}
try {
float vol = ((float) volume / CONSTANT.SYSTEM_MAX_VOLUME);
mediaPlayer.setVolume(vol, vol);
} catch (Exception e) {
e.printStackTrace();
}
}
}
スピーカーの左右の音量を忘れずに設定してください。
if (System.nanoTime() == alarm){
yourMediaPlayer.setVolume(volume, volume)}
}