Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info
  • Новые темы в этом разделе публикуются автоматически при добавлении файла в менеджер ресурсов.
    Ручное создание новых тем невозможно.

Client getSoundBufferLength

Статус
В этой теме нельзя размещать новые ответы.

PI

The world on the edge of reality
Функция getSoundBufferLength получает длительность воспроизведения буфера указанного . Работает только с потоками.

Синтаксис:
getSoundBufferLength ( theSound )
OOP Syntax
Method: sound: getBufferLength(...)
Variable: .bufferLength

Обязательные аргументы:
theSound
: звуковой элемент, буфер длины который Вы хотите получить.

Возвращает:
Значение с плавающей запятой, указывающее продолжительность воспроизведения буфера звука в секундах.
false, если звук не является потоком.
nil, если звук неверен.

Пример:
local screenSize = Vector2(guiGetScreenSize())
local BOX_SIZE = Vector2(300, 100)
local LINE_SIZE = Vector2(BOX_SIZE.x, 10)
local BOX_POSITION = screenSize / 2 - BOX_SIZE / 2
local TITLE_POSITION = BOX_POSITION + Vector2(8, 8)
local ARTIST_POSITION = BOX_POSITION + Vector2(8, 32)
local sound

addCommandHandler("playsound", function ()
if isElement(sound) then
destroyElement(sound)
end
sound = playSound(" ")
end)

addCommandHandler("stopsound", function ()
if isElement(sound) then
destroyElement(sound)
end
end)

addEventHandler("onClientRender", root, function ()
if isElement(sound) then
local soundLength = getSoundLength(sound)
local soundPosition = getSoundPosition(sound)
local soundBufferLength = getSoundBufferLength(sound)
local meta = getSoundMetaTags(sound)

dxDrawRectangle(BOX_POSITION, BOX_SIZE, tocolor(20, 20, 20, 255), false, false)
if meta.title then
dxDrawText(meta.title, TITLE_POSITION, 0, 0, tocolor(255, 255, 255, 255), 1.5, 1.5, "clear")
end
if meta.artist then
dxDrawText(meta.artist, ARTIST_POSITION, 0, 0, tocolor(255, 255, 255, 255), 1.0, 1.0, "clear")
end
dxDrawText(("%d:%02d"):format(soundPosition / 60, soundPosition % 60), BOX_POSITION + Vector2(8, BOX_SIZE.y - 32), BOX_POSITION + BOX_SIZE - Vector2(8, 0), tocolor(255, 255, 255, 255), 1.0, 1.0, "clear", "left", "top")
dxDrawText(("%d:%02d"):format(soundLength / 60, soundLength % 60), BOX_POSITION + Vector2(8, BOX_SIZE.y - 32), BOX_POSITION + BOX_SIZE - Vector2(8, 0), tocolor(255, 255, 255, 255), 1.0, 1.0, "clear", "right", "top")
-- draw seek bar
local linePosition = Vector2(BOX_POSITION.x, BOX_POSITION.y + BOX_SIZE.y - LINE_SIZE.y)
dxDrawRectangle(linePosition, LINE_SIZE, tocolor(255, 255, 255, 128), false, false)
-- draw buffer length
if soundBufferLength then
dxDrawRectangle(linePosition, Vector2(LINE_SIZE.x * (soundBufferLength / soundLength), LINE_SIZE.y), tocolor(255, 255, 255, 96), false, false)
end
-- draw current position
dxDrawRectangle(linePosition, Vector2(LINE_SIZE.x * (soundPosition / soundLength), LINE_SIZE.y), tocolor(255, 255, 255, 255), false, false)
end
end)
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу