Как с помощью слайдера настроить громкость?

Lill_Chich

Участник
Автор темы
73
5
Lua:
if playsound ~= nil then setAudioStreamState(playsound, as_action.STOP) playsound = nil end
    playsound = loadAudioStream('moonloader/config/MP3Player/'..file)
    setAudioStreamState(playsound, as_action.PLAY)

Как сделать громкость с помощью слайдера
 
Решение
не работает.

это переменная в начале:
local slider_volume = imgui.ImInt(mainIni.settings.slider_volume)

так выглядит конфиг:
slider_volume = 50;

так выглядит запуск файла:
if imgui.Button(file, imgui.ImVec2(325, 25)) then
    if playsound ~= nil then setAudioStreamState(playsound, as_action.STOP) playsound = nil end
    playsound = loadAudioStream('moonloader/config/MP3Player/'..file)
    setAudioStreamState(playsound, as_action.PLAY)
    setAudioStreamVolume(playsound, slider_volume.v / 100)
end

так выглядит слайдер:
if imgui.SliderInt("##volume", slider_volume, 0, 100) then
    mainIni.settings.slider=slider.v
    inicfg.save(mainIni, directIni)
end
Вот рабочий код;
Lua:
local imgui = require('imgui')
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8...

Dimiano

Потрачен
71
73
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Lua:
setAudioStreamVolume(AudioStream audio, float volume)
-- https://wiki.blast.hk/moonloader/lua/setAudioStreamVolume
В audio передаешь свой playsound
В volume передаешь значения из своего слайдера (mimgui/imgui/че там еще может быть не разбираюсь я в этих ваших gui)
 

Lill_Chich

Участник
Автор темы
73
5
Lua:
-- начало кода
local volume = imgui.ImInt(50)

-- имгуи
imgui.SliderInt(u8'Громкость', volume, 0, 100)

-- где-то в коде
setAudioStreamVolume(AudioStream, volume.v / 100)
не работает.

это переменная в начале:
local slider_volume = imgui.ImInt(mainIni.settings.slider_volume)

так выглядит конфиг:
slider_volume = 50;

так выглядит запуск файла:
if imgui.Button(file, imgui.ImVec2(325, 25)) then
    if playsound ~= nil then setAudioStreamState(playsound, as_action.STOP) playsound = nil end
    playsound = loadAudioStream('moonloader/config/MP3Player/'..file)
    setAudioStreamState(playsound, as_action.PLAY)
    setAudioStreamVolume(playsound, slider_volume.v / 100)
end

так выглядит слайдер:
if imgui.SliderInt("##volume", slider_volume, 0, 100) then
    mainIni.settings.slider=slider.v
    inicfg.save(mainIni, directIni)
end
 
Последнее редактирование:

Hideme Flow

Известный
573
199
не работает.

это переменная в начале:
local slider_volume = imgui.ImInt(mainIni.settings.slider_volume)

так выглядит конфиг:
slider_volume = 50;

так выглядит запуск файла:
if imgui.Button(file, imgui.ImVec2(325, 25)) then
    if playsound ~= nil then setAudioStreamState(playsound, as_action.STOP) playsound = nil end
    playsound = loadAudioStream('moonloader/config/MP3Player/'..file)
    setAudioStreamState(playsound, as_action.PLAY)
    setAudioStreamVolume(playsound, slider_volume.v / 100)
end

так выглядит слайдер:
if imgui.SliderInt("##volume", slider_volume, 0, 100) then
    mainIni.settings.slider=slider.v
    inicfg.save(mainIni, directIni)
end
Вот рабочий код;
Lua:
local imgui = require('imgui')
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
        
local directIni = 'SliderVolume.ini'
local inicfg = require("inicfg")
local ini = inicfg.load({main={volume=50}},directIni)
inicfg.save(ini, directIni)
local volume = imgui.ImInt(ini.main.volume)
local window = imgui.ImBool(false)
        
local as_action = require('moonloader').audiostream_state
local file = 'music.mp3'
function main()
    while not isSampAvailable() do wait(200) end
    imgui.Process = false
    window.v = true  --show window on start
    while true do
        wait(0)
        imgui.Process = window.v
    end
end
        
function imgui.OnDrawFrame()
    if window.v then
        local resX, resY = getScreenResolution()
        local sizeX, sizeY = 400, 250 -- WINDOW SIZE
        imgui.SetNextWindowPos(imgui.ImVec2(resX / 2 - sizeX / 2, resY / 2 - sizeY / 2), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowSize(imgui.ImVec2(sizeX, sizeY), imgui.Cond.FirstUseEver)
        imgui.Begin('Window Title', window)
        if imgui.Button(file, imgui.ImVec2(325, 25)) then
            if music ~= nil then setAudioStreamState(music, as_action.STOP) music = nil end
            music = loadAudioStream('moonloader/config/MP3Player/'..file)
            setAudioStreamState(music, as_action.PLAY)
        end
        if imgui.SliderInt("##volume", volume, 0, 100) then
            if music ~= nil then setAudioStreamVolume(music, volume.v / 100) end
            ini.main.volume=volume.v
            inicfg.save(ini, directIni)
        end
        imgui.End()
    end
end
 
  • Нравится
Реакции: Lill_Chich