0

我正在开发一个电话查找器应用程序,我想实现远程响铃功能......我已经为MediaPlayer编写了代码,但是当我测试它时,闹钟响个不停(可能是闹钟歌曲的时间)太长了,但我想让它只响一个特定的时间)......我希望为闹钟响铃设置一个计时器,比如让响铃 10 秒,但不知道如何实现它......需要帮助你们……谢谢……

    MediaPlayer mp = new MediaPlayer();
    mp = MediaPlayer.create(RingerActivity.this, R.raw.alarm);
    try {
        mp.prepare();
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (Exception e) {
        Toast.makeText(this, e.getMessage() , Toast.LENGTH_SHORT).show();         }
    mp.start();

    mp.setOnCompletionListener(new OnCompletionListener() {
        public void onCompletion(MediaPlayer mp) {
            mp.release();
        }
    });
4

2 回答 2

2

您可以使用 Runnable 和 Handler 在 10 秒后停止 MediaPlayer。

Handler h = new Handler();
Runnable stopPlaybackRun = new Runnable() {
    public void run(){
        mp.stop();
        mp.release();
    }    
};
h.postDelayed(stopPlaybackRun, 10 * 1000);
于 2012-11-09T04:24:28.273 回答
0

安卓

计时器中的媒体播放器

MediaPlayer buzzer; //Outside the method
public void BuzzerSound(){
buzzer=MediaPlayer.create(MainActivity.this, R.raw.buzzer_sound);
Thread timer= new Thread(){
    public void run(){
     try{
         buzzer.start();
         buzzer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            public void onCompletion(MediaPlayer mp) {
                mp.release();
                }
            });
        }catch(Exception e){
         e.printStackTrace();
            }
     }
    };
    timer.start(); } 
于 2016-12-31T11:20:50.540 回答