2011-05-13 69 views
0
recorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
    recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
    // 5 Minutes = 300000 Milliseconds 

    recorder.setMaxDuration(300000); 
    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
    recorder.setOutputFile(path); 
    recorder.prepare(); 
    recorder.start(); 

这是我录制的音频编码声道音频记录..在android系统

我需要跟踪每一秒的时间显示像00:05记录的时间。我已经给了5分钟的时间限制。

+0

你有问题吗? – 2011-05-13 08:44:55

+0

@Jim Blackler我需要跟踪每秒记录的音频并将其显示在屏幕上 – jennifer 2011-05-13 08:55:37

+3

嗨Jennifer,这里有一个很好的教程来做类似的事情http://developer.android.com/resources/articles/timed-ui -updates.html当您开始录制时,您可以开始计时。 – 2011-05-13 08:57:50

回答

1

谢谢Jim Blackler我明白了:)。

我试图Updating the UI from a Timer

private Handler mHandler = new Handler(); 

    ... 

    OnClickListener mStartListener = new OnClickListener() { 
    public void onClick(View v) { 
    if (mStartTime == 0L) { 
    mStartTime = System.currentTimeMillis(); 
    mHandler.removeCallbacks(mUpdateTimeTask); 
    mHandler.postDelayed(mUpdateTimeTask, 100); 
    } 
    } 
    }; 


private Runnable mUpdateTimeTask = new Runnable() { 
public void run() { 
final long start = mStartTime; 
long millis = SystemClock.uptimeMillis() - start; 
int seconds = (int) (millis/1000); 
int minutes = seconds/60; 
seconds = seconds % 60; 

if (seconds < 10) { 
mTimeLabel.setText("" + minutes + ":0" + seconds); 
} else { 
mTimeLabel.setText("" + minutes + ":" + seconds); 
} 

mHandler.postAtTime(this, 
start + (((minutes * 60) + seconds + 1) * 1000)); 
} 
};