有人知道如何为Android中的按钮添加点击声音吗?这是我的代码如下.. 我已经检查了一些教程,但我不知道如何在我的代码上实现它们。
为什么我把包含mp3文件的文件夹名称收到错误?
http://s822.photobucket.com/user/backalleylive/media/android_test_error.jpg.html
public class MainActivity extends Activity implements OnClickListener {
MediaPlayer clicksound;
public void onClick(View a){
switch (a.getId()){
case R.id.login:
Intent b = new Intent (this, play.class);
startActivity(b);
break;
case R.id.admin:
Intent c = new Intent (this, admin.class);
startActivity(c);
break;
case R.id.exit:
finish();
break;
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
View playButton = findViewById(R.id.login);
playButton.setOnClickListener(this);
View adminButton = findViewById(R.id.admin);
adminButton.setOnClickListener(this);
View exitButton = findViewById(R.id.exit);
exitButton.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
答案 0 :(得分:-1)
要使简单的点击音效起作用,您需要在Android设置中启用Touch Sound。虽然您的应用可以为您执行此操作,但您需要获得特定权限。
即这个(在AndroidManifest.xml
的清单标签内):
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
现在,一旦你的应用启动,就会启用这样的触摸声音:
Settings.System.putInt(getContentResolver(), Settings.System.SOUND_EFFECTS_ENABLED, 1);
不幸的是,声音现在出现在所有视图上,所以你必须在不应该有声音的地方禁用它们。这可以通过向所有视图添加其他标记来完成:
android:soundEffectsEnabled="false"
更不幸的是,现在所有设备都启用了声音,所以一旦用户离开您的应用程序,您就会想要禁用它们:
Settings.System.putInt(getContentResolver(), Settings.System.SOUND_EFFECTS_ENABLED, 0);
对于像点击声这样的东西来说,这是一个很大的麻烦:-) 更重要的是,当用户按下设备按钮(如背面或家中)时,您需要确保听不到声音。
另一种方法是做
Button b = (Button) findViewById(R.id.button);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Settings.System.putInt(getContentResolver(), Settings.System.SOUND_EFFECTS_ENABLED, 1);
v.playSoundEffect(SoundEffectConstants.CLICK);
Settings.System.putInt(getContentResolver(), Settings.System.SOUND_EFFECTS_ENABLED, 0);
}
});
不确定常量设置切换如何影响性能。
另请注意,用户可能已启用此设置,因此您首先需要检查
Settings.System.getInt(getContentResolver(),Settings.System.SOUND_EFFECTS_ENABLED,0);
编辑:
这是一种更好的方式来点击播放声音,而不是切换设置。
将您的声音文件放在原始文件夹中,您可以这样播放:
final MediaPlayer mPlayer = MediaPlayer.create(this, R.raw.sound);
Button b = (Button) findViewById(R.id.button);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mPlayer.start();
}
});