我想要完成的是点击一个按钮,然后根据子字符串播放声音。
这是我当前按下按钮的代码:
display.setText("start");
thefull = thef.getText().toString();
for(int a=0;a<thefull.length();a++)
{
letter=thefull.substring(a,a+1);
if(letter=="m")
{
oursong = MediaPlayer.create(MainActivity.this, R.raw.m);
oursong.start();
while(oursong.isPlaying())
{
display.setText("start");
}
oursong.release();
}
else if(letter=="a")
{
oursong = MediaPlayer.create(MainActivity.this, R.raw.a);
oursong.start();
while(oursong.isPlaying())
{
display.setText("start");
}
oursong.release();
}
display.setText("done");
但由于某种原因,当我点击我的按钮时没有播放声音。 我也是 android 和 java 编程的新手,所以我这样做是对的吗?
因为我真正想要的是程序在单击按钮时继续检查声音是否正在播放(在本例中为“oursound”),如果声音正在播放我希望程序等待它完成开始紧随其后的另一个声音。 但是现在我的代码不播放任何声音
最佳答案
首先你需要在释放它之前停止媒体播放器(它更安全。)
其次,而不是使用 while(oursong.isPlaying())
{
display.setText("开始");
;您必须使用 setOnCompletionListener 方法注册 OnCompletionListener。播放歌曲时将调用 endCompletion。像这样;
MediaPlayer mp = new MediaPlayer();
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener(){
public void onCompletion(MediaPlayer player) {
player.release();
}});
在onComplete里面应该重置文本“完成”
关于java - 检查并查看是否正在播放声音,等待它完成然后播放另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18544215/