Joh*_*ohn 2 java audio android
我想要实现的是让我点击一个按钮,然后根据子串播放声音.
这是我当前按下按钮的代码:
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");
Run Code Online (Sandbox Code Playgroud)
但出于某种原因,当我点击我的按钮时,没有播放声音.我也是android和java编程的新手,所以我这样做是对的吗?
因为我真正想要的是程序在点击按钮时继续检查声音是否正在播放(在这种情况下是"我们的")并且声音正在播放我希望程序等待它完成以启动另一个声音在它之后.但是现在我的代码没有播放任何声音
首先,你需要在发布之前停止媒体播放器(它更安全.)
第二,而不是使用while(oursong.isPlaying())
{
display.setText("start");
}; 您必须使用setOnCompletionListener方法注册OnCompletionListener.当播放歌曲时,将调用endCompletion.像这样;
MediaPlayer mp = new MediaPlayer();
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener(){
public void onCompletion(MediaPlayer player) {
player.release();
}});
Run Code Online (Sandbox Code Playgroud)
并且在onComplete里面应该重置文本"done"