0

raw在我的应用程序中,我放置了一个按钮,通过从目录中选择一个随机按钮声源来播放自己的声音 。

但是当点击按钮时,默认的 PHONE BUTTON SOUND 首先播放,然后是我的自定义按钮声音。

如何禁用默认的电话按键声音?

     public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.menu);

    //will fetch a random button sound and load it in this variable.        
    ImageButton amazingPicsButton = (ImageButton) findViewById(R.id.amazingPics);
    amazingPicsButton.getBackground().setAlpha(2);
    amazingPicsButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            startActivity(new Intent("com.jasfiddle.AmazingInterface.AMAZINGPICS"));

            //create random sound
            amazingPicsSound = createRandButSound();
            amazingPicsSound.start();
        }
    });         
}

private MediaPlayer createRandButSound(){
    return MediaPlayer.create(this, buttonSounds[r.nextInt(buttonSounds.length)]);
}
4

2 回答 2

2

我认为您需要做的就是:

setSoundEffectsEnabled(false); 

但是这可能是全局的,您可能需要创建自己的 Button 类并设置 this.setSoundEffectsEnabled(false)。

于 2012-06-19T23:57:12.287 回答
0

您可以创建自己的 Button 类并在 XML 布局文件中使用它...

package mypackagename.myApp

public class MyButton extends Button {

    public MyButton (Context context, AttributeSet attrs) {
        this.setSoundEffectsEnabled(false);
    }
}

然后在布局文件中为您的按钮使用以下 XML

<mypackagename.myApp.MyButton
    ...
</mypackagename.myApp.MyButton>

您也可以尝试android:soundEffectsEnabled=false输入一个主题,然后将您的主题分配给您的活动

于 2012-06-20T00:04:50.267 回答