Cha*_*kar 0 audio android andengine
我正在尝试为游戏创建设置,允许用户保存是否需要声音(CheckBox).
当用户取消选中它时,我想禁用所有其他声音.
这就是我正在做的事情
// Create Dialog
final SexyAlertDialog dialog = new SexyAlertDialog(mActivity,R.layout.settings,R.style.SettingDialog,false);
// Find CheckBox
final CheckBox isSoundEnabled = (CheckBox) dialog.findViewById(R.id.isSoundEnabled);
// Check SharedPreferences to get isSoundEnabled value
if(mSettingPreferences.getBoolean("isSoundEnabled", false)){
isSoundEnabled.setChecked(true);
}else{
isSoundEnabled.setChecked(false);
}
// OnCheckedChangeListener on Checkbox in AlertDialog
isSoundEnabled.setOnCheckedChangeListener(new OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
mSettingEditor.putBoolean("isSoundEnabled", true);
mSettingEditor.commit();
// Enable Music and Sound
mActivity.getEngine().getEngineOptions().getAudioOptions().setNeedsSound(true);
mActivity.getEngine().getEngineOptions().getAudioOptions().setNeedsMusic(true);
Toast.makeText(mActivity, "Audio Enabled", Toast.LENGTH_LONG).show();
}else{
mSettingEditor.putBoolean("isSoundEnabled", false);
mSettingEditor.commit();
// Disable Music and Sound
mActivity.getEngine().getEngineOptions().getAudioOptions().setNeedsSound(false);
mActivity.getEngine().getEngineOptions().getAudioOptions().setNeedsMusic(false);
Toast.makeText(mActivity, "Audio Disabled !! ", Toast.LENGTH_LONG).show();
}
}
});
dialog.show();
Run Code Online (Sandbox Code Playgroud)
做完之后
mActivity.getEngine().getEngineOptions().getAudioOptions().setNeedsSound(false);
mActivity.getEngine().getEngineOptions().getAudioOptions().setNeedsMusic(false);
Run Code Online (Sandbox Code Playgroud)
声音仍在播放.
如何禁用每个声音?
或者,我必须这样做:
if(mSettingPreferences.getBoolean("isSoundEnabled", false)){
pMySound.play();
}
Run Code Online (Sandbox Code Playgroud)
对于我的应用中的每个声音?
你可以遍历所有的Music和Sound目标,并呼吁stop(),pause()或setVolume(0,0)在他们身上.
您还可以通过将主音量设置为0来尝试静音所有声音:
mActivity.getEngine().getMusicManager().setMasterVolume(0);
mActivity.getEngine().getSoundManager().setMasterVolume(0);
Run Code Online (Sandbox Code Playgroud)