我有一個音頻項目,我正在使用來自Un4seen的BASS。這個庫主要使用BYTES,但我有一個轉換,讓我以毫秒爲單位顯示歌曲的當前位置。將毫秒轉換爲時間碼
明知MS =樣品* 1000 /採樣率 和樣品=字節* 8 /位/通道
因此,這裏是我的主要問題,這是相當簡單的......我在我的項目中的功能轉換分鐘中的毫秒到時間碼:秒:毫秒。
Public Function ConvertMStoTimeCode(ByVal lngCurrentMSTimeValue As Long)
ConvertMStoTimeCode = CheckForLeadingZero(Fix(lngCurrentMSTimeValue/1000/60)) & ":" & _
CheckForLeadingZero(Int((lngCurrentMSTimeValue/1000) Mod 60)) & ":" & _
CheckForLeadingZero(Int((lngCurrentMSTimeValue/10) Mod 100))
End Function
現在問題出現在秒計算中。任何時候MS計算結束.5秒的地方都會到達下一秒。所以1.5秒實際打印2.5秒。我知道肯定使用Int轉換導致了一輪下降,我知道我的數學是正確的,因爲我已經在計算器中檢查了100次。我無法弄清楚爲什麼這個數字是四捨五入的。有什麼建議麼?
這裏有一個功能我離開了: 專用功能CheckForLeadingZero(爲ByRef的intValue作爲整數,可選BYVAL intLength作爲整數= 2)作爲字符串 昏暗strValue中作爲字符串 將strValue = CStr的(的intValue) 如果len (strValue中)
Jeff
2010-03-11 12:27:49