java - 如何让函数在调用自身之前等待

标签 java android function recursion time

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/

相关文章:

java - 递归打印二维数组的问题

java - Java 和多线程中的命名管道

android - Splashscreen API 未显示图标

android - Cmake 测试被忽略 - 在 android 中使用 gradle 构建 cmake 项目

function - systemtap 用户空间函数跟踪

python - 将 XML 属性转换为列表,就像在 Python 中使用参数到函数中一样

java - 使角色绕圈移动

java - Spring下如何配置Logback

java - 更新 'Android Support Libary' v22 后无法连接到 Parse.com

c - 操纵指针指向的内容