2014-01-17 28 views
0

我嘗試每分鐘重複我的m播放器。 有我所做的。 請幫忙。Android:每分鐘重複播放我的音樂

int delay = 0; 
int period = 60000; 

    Timer timer = new Timer(); 
    timer.scheduleAtFixedRate(new TimerTask() { 
    public void run() { 
     mPlayer.start(); 
    } 
    }, delay, period); 
+0

使用alaram管理器。 – Raghunandan

+0

我看到代碼很好。所以有什麼問題? – Autocrab

+0

它不起作用 – Merv

回答

1

調用start()不能重放音樂。檢查MediaPlayer的state Diagram。你應該調用seekTo()。 所以也許你可以寫這樣的代碼:

int delay = 0; 
boolean isFirstTime = true; 
int period = 60000; 

    Timer timer = new Timer(); 
    timer.scheduleAtFixedRate(new TimerTask() { 
    public void run() { 
     if (isFirstTime) { 
      isFirstTime = false; 
      mPlayer.start(); 
     } 
     else 
      mPlayer.seekTo(0); 

    } 
    }, delay, period); 
+0

我做了它,但沒有 – Merv

+0

而不是seekTo(),嘗試stop() - > prepare() - > start() – yushulx

+0

我在我的錯誤信息logcat媒體播放器錯誤(-38,0) – Merv

0

嘗試處理

new Handler().postDelayed(new Runnable() {   
    @Override   
    public void run() {    
    mPlayer.start();    
    }  
}, 60000); 
+0

謝謝。音樂在開始前和等待一分鐘後等待1分鐘,它不會重複 – Merv

0

使用報警管理器來註冊廣播接收器,並使用該廣播接收器打電話給你的媒體播放器,每分鐘一次自動...

Calendar calendarAutomticSync = Calendar.getInstance(); 
     Intent intentAutomaticSync = new Intent(Dropbox.this, 
       BroadcastReceiverDropboxAutoSync.class); 
     intentAutomaticSync.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     String currenttimeDaily = String.valueOf((int) System 
       .currentTimeMillis()); 
     int systemCurrentTimeDaily = Integer.parseInt(currenttimeDaily); 
     pendingIntent = PendingIntent.getBroadcast(Dropbox.this, 
       systemCurrentTimeDaily, intentAutomaticSync, 0); 
     alarm_manager.setRepeating(AlarmManager.RTC_WAKEUP, 
       calendarAutomticSync.getTimeInMillis(), 1000 * 60 * 1, 
       pendingIntent); 
+0

好。我會嘗試。 – Merv

+0

如果您有任何疑問,請公開告訴我 – Satheesh

+0

感謝朋友們的關注 – Merv