2013-04-09 55 views
0

從加速度計值和設備平坦時,我有以下「條件」,連續播放嘟嘟聲。我無法弄清楚如何在指定的時間段內(例如:5秒)將此聲音設置爲重複。我嘗試了很多方法,並始終保持聲音始終播放或不遵循if條件。如果有人可以幫助我..提前感謝您..Android,在指定的時間段內重複動作

if (x > -0.1 && x < 0.1 && y > -0.1 && y < 0.1) { 
    try { 
    AssetFileDescriptor afd = getAssets().openFd("beep.wav"); 
    mMediaplayer = new MediaPlayer(); 
    mMediaplayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength()); 
    afd.close(); 
    mMediaplayer.prepare(); 
    mMediaplayer.start(); 
    mMediaplayer.setOnCompletionListener(new OnCompletionListener() { 
     public void onCompletion(MediaPlayer mp) { 
     //mp.setLooping(false); 
     mp.stop(); 
     mp.release(); 
     } 
    }); 
    } catch (Exception e) { 
    e.printStackTrace(); 
    } 
} 

回答

0

爲什麼不在媒體播放器中播放新的異步任務在後臺?創建您自己的異步任務實現,然後在其構造函數中傳遞一個時間值,然後在那裏啓動mediaplayer並繼續檢查它,以查看流逝的持續時間是否等於傳遞給它的值。我想,這可能幫助 - >

http://developer.android.com/reference/android/os/AsyncTask.html

0

您可以使用重複報警。

int secondsInterval = 5; // 5 seconds for example 
long interval = secondsInterval * 1000; 
long firstTime = Calendar.getInstance().getTimeInMillis(); 

Intent i = new Intent(ctx, AlarmHandler.class); 
PendingIntent mAlarmSender = PendingIntent.getService(ctx, 0, i, PendingIntent.FLAG_UPDATE_CURRENT); 

AlarmManager am = (AlarmManager) ctx.getSystemService(ALARM_SERVICE); 
am.setRepeating(AlarmManager.RTC_WAKEUP, firstTime, interval, mAlarmSender); 

那麼你應該包括意圖處理類(AlarmHandler.class在上面的代碼)這樣​​的方法中代碼:

@Override 
protected void onHandleIntent(Intent arg0) { 
    // your code here 
} 
相關問題