Android的;默认按钮声音后播放按钮声音

时间:2012-06-19 23:43:56

标签: java android button android-mediaplayer

在我的应用程序中,我放了一个按钮,通过从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)]);
}

2 个答案:

答案 0 :(得分:2)

我认为你应该做的就是:

setSoundEffectsEnabled(false); 

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

答案 1 :(得分: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放入主题中,然后将主题分配给您的活动