Android 安卓在点击按钮时播放声音
我试图多次播放两个不同的.wav文件。 我想先播放sound1,然后播放sound2,然后播放sound1,依此类推。。 这是一段代码Android 安卓在点击按钮时播放声音,android,media-player,Android,Media Player,我试图多次播放两个不同的.wav文件。 我想先播放sound1,然后播放sound2,然后播放sound1,依此类推。。 这是一段代码 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_box); mp = MediaPlayer.crea
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_box);
mp = MediaPlayer.create(Box.this, R.drawable.sound1);
mp2 = MediaPlayer.create(Box.this, R.drawable.sound2);
handler = new Handler();
sButton.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
rounds = new Integer(et.getText().toString());
for(int j = 0; j < rounds; j ++)
{
f();
g();
}
}
});
}
public void f()
{
cdt1 = new CountDownTimer(5000, 1000)
{
public void onTick(long millisUntilFinished)
{
}
public void onFinish()
{
mp.setLooping(true);
mp.setVolume(1.0f, 1.0f);
mp.start();
}}.start();
}
public void g()
{
cdt = new CountDownTimer(7000, 1000)
{
public void onTick(long millisUntilFinished)
{
}
public void onFinish()
{
mp2.setLooping(true);
mp2.setVolume(1.0f, 1.0f);
mp2.start();
}}.start();
}
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_框);
mp=MediaPlayer.create(Box.this,R.drawable.sound1);
mp2=MediaPlayer.create(Box.this,R.drawable.sound2);
handler=新的handler();
setOnClickListener(新视图.OnClickListener()
{
@凌驾
公共void onClick(视图v)
{
舍入=新整数(et.getText().toString());
对于(int j=0;j
我每次播放声音时都要重置它们吗?
提前感谢。您可以检查mediaplayer是否仍在使用以下内容:
if (mp.isPlaying()) {
//do nothing
} else {
//start new sound
}
有问题吗?!?声音没有按正确的顺序播放。最后的问题。从我这里看到的。您正在呼叫f,并有5秒的倒计时,直到您开始发声1。同时,您正在启动g,启动sound2的倒计时为7秒?我想在创建活动时在5秒后播放sound1,然后在播放sound1后播放sound2,依此类推。如果是这样,您需要对声音进行不同的处理。检测声音何时结束如何,这样你就可以及时重新开始。顺序正确吗:开始->完成->停止->准备->开始?