【问题标题】:set music volume permanently永久设置音乐音量
【发布时间】:2021-07-13 12:56:30
【问题描述】:

我有背景音乐,并且有一个静音按钮,它可以正常工作,但即使我在离开活动时静音并且重新开始播放音乐,如果用户不这样做,我想永久静音单击按钮上的声音它应该保持静音我该怎么做。 这是我的代码

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);
}

【问题讨论】:

    标签: java android mobile


    【解决方案1】:

    为此,您可以将状态保存为名为@9​​87654322@ 的首选项。现在它会被记住。下面的代码展示了如何实现这一点:

    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);
        }
    

    此外,我为您提供another answer 我写信是为了让您更舒适。 快乐编码! :)

    【讨论】:

    • 酷,很高兴听到!随意按照百科全书的方式将答案勾选为正确的答案。干杯!
    【解决方案2】:

    请不要从 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);
    }
    

    【讨论】:

    • 我很高兴听到这个消息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-04
    • 1970-01-01
    • 1970-01-01
    • 2011-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多