2013-02-13 22 views
0

在AS3下面的代碼獲取分鐘和秒:AS3讓「時間」以毫秒爲單位的MP3

var minutes:uint = Math.floor(PrayPrayer.position/1000/60); 
var seconds:uint = Math.floor(PrayPrayer.position/1000) % 60; 

但是如果您的收聽到越過小時大關的音頻通話?

從mp3談話中獲得小時需要什麼數學?

var hours:uint = Math.floor(PrayPrayer.position/1000) % 60 & (((???????))); 

回答

0

所以PrayPrayer.position以毫秒爲單位。您的minutes行被1000除以得到秒,然後除以60以從秒到分鐘。您的seconds線正在查看其餘部分。

你在hours行開始的行使用%,所以會看看其餘部分 - 你在那裏使用秒。 %是模運算符。它給你了整數除法的其餘部分。所以,你的行

var seconds:uint = Math.floor(PrayPrayer.position/1000) % 60; 

是找到秒(PrayPrayer.position/1000)的數量,這可能是一些大的像2337,60分,只是保持剩餘部分。 2337/60 = 38剩餘57,因此2337%60將是57.

找到小時的簡單方法是對分鐘使用相同的技巧。

var minutes:uint = Math.floor(PrayPrayer.position/1000/60); 
var seconds:uint = Math.floor(PrayPrayer.position/1000) % 60; 
var hours:uint = Math.floor(minutes/60); 
minutes %= 60; // same as minutes = minutes % 60. Forces minutes to be between 0 and 59. 
1

這是我的轉換方法:

public static var MINUTE:Number = 60; 
    public static var HOUR:Number = 60 * MINUTE; 
    public static var DAY:Number = 24 * HOUR; 

     /** 
    * returns string created from seconds value in following format hours:minutes:seconds, i.e. 121 seconds will be displayed as 00:02:01 
    * @param seconds <i>Number</i> 
    * @return <i>String</i> 
    */ 
    public static function secondsToHMS(seconds:Number, doNotRound:Boolean = false):String 
    { 
     var _bNegative:Boolean = seconds < 0; 

     seconds = Math.abs(seconds); 

     var time:Number = (doNotRound) ? seconds:Math.round(seconds); 

     var ms:Number; 
     var msec:String; 

     if (doNotRound) 
     { 
      ms = seconds - (seconds | 0); 
      msec = prependZeros((ms * 1000) | 0, 3); 
     } 


     var sec:Number = (time | 0) % MINUTE; 

     var min:Number = Math.floor((time/MINUTE) % MINUTE); 

     var hrs:Number = Math.floor(time/HOUR); 
     // 
     return (_bNegative ? "-":"") + 
       ((hrs > 9) ? "":"0") + hrs + ":" + 
       ((min > 9) ? "":"0") + min + ":" + 
       ((sec > 9) ? "":"0") + sec + 
       (doNotRound ? "." + msec:""); 
    } 

prependZeros是其他工具來在給定的字符串的前面加 「0」。

相關問題