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

时间:2019-03-01 01:34:46

标签: java android android-mediaplayer android-lifecycle android-thread

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

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

通过使用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这样的方法来停止播放歌曲

@Override
protected void onStop() {
    super.onStop();
    if (player.isPlaying())
        player.stop();
}

答案 2 :(得分:0)

您可以使用

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