2011-05-24 93 views
1

我的iPhone應用程序使用FFMPeg解碼/播放音頻文件。轉換時間以微秒爲單位分秒

我成功地從適當的FFMPeg函數獲取當前時間(微秒),但我無法將其轉換爲分鐘和秒(MM:SS)。

這是我的代碼,顯示包含時間的NSString; getFFMPEGtime是在微秒時間:

self.currentAudioTime = [NSString stringWithFormat: @"%02d:%02d", 
           (int) getFFMPEGtime/(int)1000000, 
           (int) getFFMPEGtime % 1000000]; 

看來,在幾分鐘的時間還好,但是秒搞砸。將微秒轉換爲幾分鐘和幾秒鐘的正確方法是什麼?

回答

4

我認爲你在幾秒鐘內的時間可能是正確的,你在幾分鐘內的時間很可能是錯誤的。

(int) getFFMPEGtime/(int)1000000是給你總

要獲得MM:SS,你需要做到以下幾點:

self.currentAudioTime = [NSString stringWithFormat: @"%02d:%02d", 
           (int) getFFMPEGtime/(int)60000000, 
           (int) ((getFFMPEGtime % 60000000)/1000000)]; 
+0

嗯,我不認爲第二操作是正確的 – sidyll 2011-05-24 17:18:22

+0

感謝布萊恩,但它沒有工作。我在分鐘和秒鐘得到負面時間,秒鐘的時間正在減少。 – Winston 2011-05-24 17:19:29

+0

@sidyll:你說得對,我工作得太快了...... – 2011-05-24 17:37:08

1

這是數學,如果你有微秒,一分鐘有60秒,分你的號碼達60000000,你有你的分鐘。

把你的數字除以60e6的餘數以微秒爲單位,所以除以1e6得到秒數。

實施例:

鑑於123456789微秒,您有:

  1. 123456789/60e6 = 2分鐘
  2. ((123456789%60e6)/ 1E6)= 3.45秒
5

代碼:

int microseconds = 59434225; 
int seconds = microseconds/1000000; 
NSString * result = [NSString stringWithFormat:@"%02d:%02d",seconds/60,seconds%60]; 

輸出:

63434225 -> 01:03 
59434225 -> 00:59 
+0

+1,這是@Brian Driscoll – sidyll 2011-05-24 17:19:19

相關問題