永久设置音乐音量
set music volume permanently
我有背景音乐并且有一个静音按钮它工作正常但即使我在离开时静音 activity 并且回来的音乐再次开始播放我想静音永久如果用户不点击按钮上的声音它应该保持静音我该怎么做。
这是我的代码
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wheel);
wheelauido=MediaPlayer.create(Wheel.this,R.raw.wheelauido);
melody.start();
melody=MediaPlayer.create(Wheel.this,R.raw.melody);
melody.setLooping(true);
stopmusic=findViewById(R.id.stopmusic);
playmusic=findViewById(R.id.playmusic);
}
@Override
protected void onPause() {
super.onPause();
melody.setVolume(0,0);
stopmusic.setVisibility(View.INVISIBLE);
playmusic.setVisibility(View.VISIBLE);
}
public void playmusic(View view){
melody.setVolume(1,1);
playmusic.setVisibility(View.INVISIBLE);
stopmusic.setVisibility(View.VISIBLE);
}
public void stopmusic(View view){
melody.setVolume(0,0);
stopmusic.setVisibility(View.INVISIBLE);
playmusic.setVisibility(View.VISIBLE);
}
为此,您可以将状态保存为名为 SharedPreferences
的首选项。现在它会被记住。以下代码显示了如何实现:
public static SharedPreferences prefs(Context context){
return PreferenceManager.getDefaultSharedPreferences(context);
}
public static void setMuteButton(Context context, Boolean muted) {
prefs(context).edit().putBoolean("Mute", muted).apply();
}
public static Boolean isMuted(Context context) {
return prefs(context).getBoolean("Mute", false);
}
此外,我还为您提供 我写信是为了让您更适应它。
编码愉快! :)
请不要启动 onCreate 函数。
在播放功能上执行此操作,在开始之前,先设置音量。
SharedPreference 是个好主意。
它可以将数据保存到 xml 文件,以便在应用程序重新启动时加载最后一卷。
private void play(){
wheelauido=MediaPlayer.create(Wheel.this,R.raw.wheelauido);
if(isMuted())//use DEX7RA's code.
melody.setVolume(0,0);
melody.start();
melody=MediaPlayer.create(Wheel.this,R.raw.melody);
melody.setLooping(true);
}
我有背景音乐并且有一个静音按钮它工作正常但即使我在离开时静音 activity 并且回来的音乐再次开始播放我想静音永久如果用户不点击按钮上的声音它应该保持静音我该怎么做。 这是我的代码
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wheel);
wheelauido=MediaPlayer.create(Wheel.this,R.raw.wheelauido);
melody.start();
melody=MediaPlayer.create(Wheel.this,R.raw.melody);
melody.setLooping(true);
stopmusic=findViewById(R.id.stopmusic);
playmusic=findViewById(R.id.playmusic);
}
@Override
protected void onPause() {
super.onPause();
melody.setVolume(0,0);
stopmusic.setVisibility(View.INVISIBLE);
playmusic.setVisibility(View.VISIBLE);
}
public void playmusic(View view){
melody.setVolume(1,1);
playmusic.setVisibility(View.INVISIBLE);
stopmusic.setVisibility(View.VISIBLE);
}
public void stopmusic(View view){
melody.setVolume(0,0);
stopmusic.setVisibility(View.INVISIBLE);
playmusic.setVisibility(View.VISIBLE);
}
为此,您可以将状态保存为名为 SharedPreferences
的首选项。现在它会被记住。以下代码显示了如何实现:
public static SharedPreferences prefs(Context context){
return PreferenceManager.getDefaultSharedPreferences(context);
}
public static void setMuteButton(Context context, Boolean muted) {
prefs(context).edit().putBoolean("Mute", muted).apply();
}
public static Boolean isMuted(Context context) {
return prefs(context).getBoolean("Mute", false);
}
此外,我还为您提供
请不要启动 onCreate 函数。 在播放功能上执行此操作,在开始之前,先设置音量。 SharedPreference 是个好主意。 它可以将数据保存到 xml 文件,以便在应用程序重新启动时加载最后一卷。
private void play(){
wheelauido=MediaPlayer.create(Wheel.this,R.raw.wheelauido);
if(isMuted())//use DEX7RA's code.
melody.setVolume(0,0);
melody.start();
melody=MediaPlayer.create(Wheel.this,R.raw.melody);
melody.setLooping(true);
}