2012-06-30 42 views
1

用戶從MediaPicker中選擇一個.mp3。我想根據.mp3的長度(以秒爲單位)動態設置UISlider的寬度。 UISlider顯示在UIScrollView中,在音樂播放過程中,定時器啓動/滾動UISlider(類似於音頻軌道在iMovie中的顯示方式)。基於音頻文件動態調整UISlider大小

**我的問題:如何設置UISlider的寬度,以便無論寬度(.mp3長度,以秒爲單位),拇指將以完全相同的速度「滾動」,而不會依賴於歌曲的長度。即。由於UISlider的寬度根據音樂長度而改變,因此短曲和長歌應該以完全相同的速度滾動。

我已經在這2天了。非常感激。

回答

0

用mp3文件創建AVAudioPlayer的實例。現在根據播放的音頻文件設置滑塊的最大值和最小值:

首先設置滑塊的最小值。

yourslider.minimum = 0; 

現在使用avaudioplayer的時間屬性,它使MP3或任何音頻文件的總時長設置在滑塊最大值:

yourslider.maximum = ceilf(float)avaudioplayer.duration); 
+0

將鑄造'avaudioplayer.duration'到'int'不是地板值?天花板會更好,因爲滑塊右端的<1秒空白空間似乎最好會丟失1秒鐘的歌曲內容? – WendiKidd

+0

這不是我的問題。 –