Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在活动开始X秒后播放歌曲_Java_Android_Android Mediaplayer_Android Lifecycle_Android Thread - Fatal编程技术网

Java 如何在活动开始X秒后播放歌曲

Java 如何在活动开始X秒后播放歌曲,java,android,android-mediaplayer,android-lifecycle,android-thread,Java,Android,Android Mediaplayer,Android Lifecycle,Android Thread,我正在创建一个android应用程序,我需要一种方法在启动活动几秒钟后运行歌曲,默认情况下,歌曲在我打开该活动后直接启动。 感谢您的帮助每当您需要在单个线程中等待特定时间段时,您可以使用: try { Thread.sleep(millis); } catch (InterruptedException e) { } 通过使用Thread.sleep()或SystemClock.sleep()导致应用程序主线程被阻塞/冻结,我建议改用Handler.postDelayed() 首先将您

我正在创建一个android应用程序,我需要一种方法在启动活动几秒钟后运行歌曲,默认情况下,歌曲在我打开该活动后直接启动。
感谢您的帮助

每当您需要在单个线程中等待特定时间段时,您可以使用:

try {
    Thread.sleep(millis);
} catch (InterruptedException e) { }

通过使用
Thread.sleep()
SystemClock.sleep()
导致应用程序主线程被阻塞/冻结,
我建议改用
Handler.postDelayed()

首先将您的媒体文件添加到res/raw目录下,如果不存在,您必须创建它。

右键单击res
目录>新建>Android资源目录

在“资源类型”上选择“原始”,然后将媒体文件复制到其中,例如“song.mp3”

代码

public class MainActivity extends AppCompatActivity {

//Creating MediaPlayer object
    private MediaPlayer player;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
            player = MediaPlayer.create
            (MainActivity.this, R.raw.song); // >> here's choose your song file
                player.start();
            }
        }, 10000); // >> Put time with milliseconds, this will delay the start play for 10 seconds
}

您可能希望通过如下覆盖
onStop
方法停止歌曲

你可以用

 new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
           //your code
          }
        }, 10000);
 new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
           //your code
          }
        }, 10000);