...

Листинг 5.6.

Функция преобразования времени

function TSoundPlayerForm.FileLangToStr(leng: longint): string;

var

//Переменная результирующей строки

strTime: string;

sec: longint;

min: longint;

begin

//Получаем секунды и минуты из миллисекунд (leng)

sec := trunc(leng/1000);

min := trunc(sec/60);

sec := sec – min*60;

strTime := IntToStr(min);

//Если секунд меньше десяти, то преобразуем результирущую

//строку (участок минут), добавляя \'0\' спереди

if sec < 10 then strTime := strTime + \':0\' + IntToStr(sec)

else strTime := strTime + \':\' + IntToStr(sec);

FileLangToStr := strTime;

end;

Находим количество секунд, затем минут, преобразуем эти данные в строковый вид (для вывода на индикатор времени). Если после нахождения количества минут секунд оказалось меньше десяти, то добавляем 0 в результирующую строку. К примеру, мы получили, что композиция занимает три минуты и пять секунд. В этом случае строка должна выглядеть как 3:05, а не 3:5.

Процедуру создания корректного формата времени мы разобрали. Теперь необходимо выяснить, как можно узнать время, которое прошло с момента начала воспроизведения файла. Для этого обратимся к свойствам компонента MediaPlayer, а именно к Length (длина загруженного файла) и Position (текущая позиция в нем). Зная позицию, можно при помощи ранее рассмотренной функции FileLangToStr найти время воспроизведения (листинг 5.7).

Загрузка...