2013-03-02 111 views
0

我試圖創建一組轉盤,我已經成功加載了一個mp3並可以播放它,現在在我的轉盤movieclip中,我有另一個用於手臂的movieclip,可以輕鬆改變旋轉。計算MP3長度的相應旋轉

即時通訊正在努力將MP3與旋轉綁在一起。我希望手臂能夠在MP3播放時慢慢旋轉。當聲音開始並結束時,手臂需要從-4開始並以+14(旋轉)結束。

現在IV試圖計算的MP3的長度用下面的代碼

mp3Length = (_mp3.bytesTotal/(_mp3.bytesLoaded/_mp3.length))/1000; 

所以我加載一首歌曲和痕量mp3Length的值和跟蹤值是352.8620408163265

,但是當我看在itunes中同一首歌的長度是5:53。

所以即時猜測有什麼是錯誤的方式我計算的長度。

然後我試着用下面的代碼旋轉手臂。 。 。

leftDeck.arm.rotation = 18/mp3Length; 

是18 -4和+14但這是快速旋轉臂的方式之間的差異。

任何人都可以幫助指出我正確的方向來解決這個問題嗎?

非常感謝

UPDATE -----

確定IV發現這個代碼正確識別MP3

var Milliseconds:Number = (_mp3.bytesTotal/(_mp3.bytesLoaded/_mp3.length)); 

var Minutes:uint = Math.floor(Milliseconds/60000); 
var Seconds:uint = (Milliseconds%60000); 
var SecondsTens:uint = Math.floor(Seconds/10000); 

Seconds = Math.ceil(Seconds%10000) 
Seconds /= 1000; 

trace(Minutes + ":" + SecondsTens + "" + Seconds); 

但長度IM仍然在努力轉動拴在長度。

+0

是什麼原因你的問題真的是「如何確定MP3文件的(時間)長度?」。 – 2013-03-02 16:36:41

+1

如果你的mp3有可變比特率VBR,這個計算將無法工作 – M4tchB0X3r 2013-03-02 16:42:13

+0

@OliCharlesworth不,我已經成功計算了長度。我的問題是,如何讓我的手臂旋轉從-4到+14的時間,它需要加載的MP3播放 M4tchB0X3r你可以解釋更多一點。如果我鍵入_mp3。沒有可變比特率的codehint。 – AndrewBramwell 2013-03-02 16:47:27

回答

1

您可能不需要知道比特率來計算MP3的長度,因爲Sound類具有length屬性,該屬性報告以毫秒爲單位的長度。

SoundChannel類有一個position屬性,它報告以毫秒爲單位播放的聲音的當前位置。

這意味着,你可以計算出旋轉的基礎上[soundChannel].position/[sound].length百分比並應用到旋轉:

leftDeck.arm.rotation = 18 * (_mp3Channel.position/_mp3.length) - 4; 

你減去4是因爲你的範圍爲-4〜14

+0

你我的好先生是個傳奇人物!不得不調整最後一個數字,因爲我得到的旋轉錯誤,但這個工程!謝謝! – AndrewBramwell 2013-03-03 11:59:30

+0

很高興爲您效力!祝好運與項目的其餘部分。 – Marcela 2013-03-03 18:56:09