2012-06-19 418 views
0

在我的应用程序中,我通过从raw目录中选取一个随机按钮声源来播放自己的声音。Android;在默认按钮声音后播放按钮声音

但是,当按钮被点击时,默认的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

所有我想你应该需要做的是:

setSoundEffectsEnabled(false); 

不过,这可能是全球性的,则可能需要使自己的Button类,并设置this.setSoundEffectsEnabled(假)。

+0

我在哪里可以在我的代码中调用此方法?我只想禁用默认的电话按键声音,并保持我自己的应用程序按键声音正常运行。 – jmishra

0

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

package mypackagename.myApp 

public class MyButton extends Button { 

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

然后使用下面的XML为您的按钮

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

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