簡體   English   中英

打開/關閉聲音按鈕不起作用

[英]Turn on/off sound button not working

我在設置活動中發現,當用戶單擊ToggleButton時,應該使整個應用程序中的聲音靜音,但它不起作用。我放在Tutorial類中的SoundPool onClick按鈕聲音仍在播放onClick聲音,我已經指定了Shared帶有ToggleButton的首選項。

這是我的代碼,

    package com.fullfrontalgames.numberfighter;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.media.AudioManager;
import android.media.SoundPool;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ToggleButton;


public class Settings extends Activity {











    @Override
    public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.settings);


        Button Notifications = (Button) findViewById(R.id.Notifications);
        Button Done = (Button) findViewById(R.id.done);
        Button AccountSettings = (Button) findViewById(R.id.AccountSettings);
        final ToggleButton AT = (ToggleButton) findViewById(R.id.AudioToggle);



        AT.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                SharedPreferences appPrefs =
                        getSharedPreferences("com.fullfrontalgames.numberfighter.Settings_preferences",
                                MODE_PRIVATE);
                SharedPreferences.Editor editor = appPrefs.edit();
                editor.putBoolean("atpref", AT.isChecked()); //value to store
                editor.commit();

                if ((AT.isChecked())) {
                    AT.setSoundEffectsEnabled(true);

                  } else {
                    AT.setSoundEffectsEnabled(false);
                      }
                 }

        });







        SharedPreferences appPrefs =
                getSharedPreferences("com.fullfrontalgames.numberfighter.Settings_preferences",
                MODE_PRIVATE);
        boolean atpref = appPrefs.getBoolean("atpref", true); //default is true
        AT.setChecked(atpref);
        Done.setOnClickListener(new View.OnClickListener() {








            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent Intent = new Intent(Settings.this,activity_main.class);
                Intent.setFlags(android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(Intent);



            }
        });
        Notifications.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                startActivity(new Intent("com.fullfrontalgames.numberfighter.Notifications"));
            }
        });
        AccountSettings.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                startActivity(new Intent("com.fullfrontalgames.numberfighter.AccountSettings"));
            }
        });









    }

根據setSoundEffectsEnabled的文檔

設置此視圖是否應為諸如單擊和觸摸之類的事件啟用聲音效果。

如果您已經播放聲音,則可能希望禁用視圖的聲音效果,例如,播放dtmf音調的撥號鍵。

因此,應該將此功能設置為關閉視圖的聲音效果(例如單擊或觸摸)。 不要將設備聲音設置為關閉。

為您的目的檢查AudioManager

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM