【问题标题】:How to set Media player Duration in android如何在android中设置媒体播放器持续时间
【发布时间】:2013-04-17 21:21:39
【问题描述】:

我想播放 MediaPlayer 1 秒钟。如何在此代码中设置 Duration..

    player = MediaPlayer.create(getApplicationContext(), R.raw.beepsound);
    player.start();

    CountDownTimer Timer = new CountDownTimer(1000, 1000) {

        @Override
        public void onTick(long millisUntilFinished) {

            player.start();
        }

        @Override
        public void onFinish() {
            // TODO Auto-generated method stub

            player.stop();
        }
    };
    Timer.start(); 

【问题讨论】:

  • 你刚刚发布了这个问题link 前一段时间。这是巧合吗?

标签: android


【解决方案1】:

您无需对 onTick 方法执行任何操作。

试试这个代码:

player = MediaPlayer.create(getApplicationContext(), R.raw.beepsound);
player.start();

CountDownTimer timer = new CountDownTimer(1000, 1000) {

    @Override
    public void onTick(long millisUntilFinished) {
       // Nothing to do
    }

    @Override
    public void onFinish() {
        if (player.isPlaying()) {
             player.stop();
             player.release();
        }
    }
};
timer.start(); 

如果你看构造函数:

public CountDownTimer (long millisInFuture, long countDownInterval)

millisInFuture - 从调用 start() 到倒计时完成并调用 onFinish() 的未来毫秒数。 所以onFinish() 将在 1 秒后被调用(1000 毫秒 = 1 秒)。

参考:http://developer.android.com/reference/android/os/CountDownTimer.html#CountDownTimer(long,长)

【讨论】:

  • 查看我的更新答案。并且不要忘记删除 player.start();来自你的 onTick() 方法。
  • 感谢您提供宝贵的信息,但是当我将持续时间设置为 5000 毫秒时,它不起作用..
  • 好吧,还有一个问题,现在我想在 10 秒后播放媒体播放器。
  • 由于这是一个新查询,您应该将其作为一个新问题发布。
  • 我已发布新问题 Ali 先生 ...stackoverflow.com/questions/16061371/…
【解决方案2】:

您可以使用 TimerTask 安排 MediaPlayer.stop() 在 1 秒后运行。

TimerTask doAsynchronousTask = new TimerTask() {       
        @Override
        public void run() {
            MediaPlayer.stop()
        }
    };
    timer.schedule(doAsynchronousTask, 0, 1000); //execute in every 20000 ms
     }

你可以试试这个

final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
    @Override
    public void run() {
        if (mediaPlayer.isPlaying())
            mediaPlayer.stop();
    }
}, timeout);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多