2012-11-09 50 views
0

我正在開發一個手機查找應用程序,我想實現遠程響鈴功能......我已經爲MediaPlayer編寫了一個代碼,但是當我測試它時,鬧鐘不停地響起(可能是警報歌曲太長,但我想讓它只響一段時間)...我希望爲響鈴設置一個計時器,例如說響10秒鐘,但不知道如何實現它...需要幫助你們......謝謝...如何在Android中設置MediaPlayer的定時器?

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(); 
     } 
    }); 

回答

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); 
+0

謝謝!非常有用的補充延遲的mp。 –

0

的Android

媒體播放器,定時器

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(); }