Java、Android Studio
我有一个发牌的功能,直到每个人都拿到牌为止。我想在发牌时播放声音,并且我想停止该功能,持续1或2秒,这样看起来就不会像我在0.1秒内发完所有牌一样。 我已经尝试过:
Thread.sleep();
我不想卡住我的应用程序,我只想让递归函数在调用自身之前等待。
最佳答案
您可以使用 Handler().postDeleyed() 播放声音并停止在 Handler 中。一个抽象的例子是这样的:
//code to play sound
new Handler().postDelayed(new Runnable(){
@Override
public void run(){
//stop the sound
}
}, 1000); // 1000 is in millisec which means 1 seconds.
例如这段代码将在 1 秒后播放和暂停音乐:
final MediaPlayer player = new MediaPlayer();
AssetFileDescriptor afd =
this.getResources().openRawResourceFd(R.raw.hangout_ringtone);
player.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(),
afd.getLength());
afd.close();
player.setAudioStreamType(AudioManager.STREAM_ALARM);
player.prepare();
player.start();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
mMediaPlayer.stop();
}
}, 1000);//millisec.
关于java - 如何让函数在调用自身之前等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59738547/