我应该在哪里添加button.playSoundEffect(SoundEffectConstants.CLICK); ? 应该在这里:
//onClick event where myButton1 is pressed a click sound occurs
public void onClick(View v){
if (v.getId() == R.id.b_Press1){
myButton1.playSoundEffect(SoundEffectConstants.CLICK);
}
答案 0 :(得分:1)
1)你应该将mp3文件放在/ raw文件夹中。
2)在setContentView()
之后将此代码放在onCreate()方法中final MediaPlayer mp = new MediaPlayer();
Button b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(mp.isPlaying())
{
mp.stop();
mp.reset();
}
try {
AssetFileDescriptor afd;
afd = getAssets().openFd("AudioFile.mp3");
mp.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
mp.prepare();
mp.start();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
3.每按一次按钮,声音将再次播放。您不必为此编写任何额外的代码。
请注意,AudioFile.mp3是/ raw文件夹
中mp3文件的名称希望这个答案有用:)
答案 1 :(得分:0)
尝试一下
final MediaPlayer mp = new MediaPlayer();
Button b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(mp.isPlaying())
{
mp.stop();
mp.reset();
}
try {
AssetFileDescriptor afd;
afd = getAssets().openFd("song.mp3");
mp.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
mp.prepare();
mp.start();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
答案 2 :(得分:0)
只有在用户启用了声音效果且isSoundEffectsEnabled()为true时才会播放声音效果。
因此请确保使用xml(例如
)启用它android:soundEffectsEnabled="true"
或
通过代码
myButton1.setSoundEffectsEnabled(true)
答案 3 :(得分:0)
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
button.playSoundEffect(0);
}
});
答案 4 :(得分:0)