静音和取消静音按钮? (还是需要回答)

时间:2015-11-05 05:49:24

标签: java android audio service nullpointerexception

我已经坚持了一个多小时了。在我的主菜单屏幕中,我有一个静音按钮。我希望它在我的后台服务中调用一个方法,该方法将所有MediaPlayer音频静音。

我在这里打电话给静音:

    public void mute(View view){
    mutebutton = (ImageButton) findViewById(R.id.mutebutton);

    currentVolume = manager.getStreamVolume(AudioManager.STREAM_MUSIC);

    if (currentVolume == 0) {
        TwentySeconds.unMute();
        Toast.makeText(Main_Menu.this, "UNMUTED", Toast.LENGTH_SHORT).show();
    } else {
        TwentySeconds.mute();
        Toast.makeText(Main_Menu.this, "MUTED", Toast.LENGTH_SHORT).show();
    }

以下是服务中的方法:

public static void mute(){
    ten.setVolume(0, 0);
    three.setVolume(0, 0);
}

public static void unMute(){
    ten.setVolume(1, 1);
    three.setVolume(1, 1);
}

以下是实际的媒体播放器,它们间隔播放:

 static `MediaPlayer` ten;
static `MediaPlayer` three;

问题是,我在这里得到一个空指针异常:

currentVolume = manager.getStreamVolume(AudioManager.STREAM_MUSIC);

顺便说一下,经理会像这样实例化:

 AudioManager manager;

以及后来:

manager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

我真的很感激任何反馈(积极或消极)!非常感谢您的帮助,请告诉我您是否需要更多代码。

 {Rich}

1 个答案:

答案 0 :(得分:0)

您的经理"应该像这样实例化:

AudioManager manager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);

如果仍然是nullpoint,请添加

Context context = this;
在实例化之前

。试试吧,希望我能帮到你。