Проиграть звук при свёрнутой игре

Ciske

Известный
Автор темы
30
9
Версия MoonLoader
.026-beta
Приветствую. нижеследующий код работает лишь когда развёрнута игра. Звук в свёрнутом состоянии не проигрывается. Анти-афк установлен. Нужно использовать какую-то внешнюю библиотеку для проигрывания звука не-средствами игры? Что можете посоветовать попроще?

Lua:
function sampev.onServerMessage(color, text)
    containsKeyword(text, 'blabla') then
    local beep = loadAudioStream('moonloader/beep.wav')
    setAudioStreamState(beep, 1)
end

(при поступлении в чат строки с определённым словом должен быть звук)
 

stool

Известный
485
416
 
  • Эм
Реакции: Corenale

2elnwndrer.

Известный
162
58
Сообщение в теме 'Вывод звука'
https://www.blast.hk/threads/82439/post-697726

пример скрипта, (завалялся только скрин, ну думаю там и так ясно все)
 

Вложения

  • IMG_3966.jpeg
    IMG_3966.jpeg
    45.8 KB · Просмотры: 47
Последнее редактирование:

GGramm

Известный
43
10
Попробуй

Lua:
local sampev = require 'samp.events'
local ffi = require 'ffi'

-- Объявляем функцию PlaySound из WinAPI
ffi.cdef[[
    bool PlaySoundA(const char* pszSound, void* hmod, uint32_t fdwSound);
]]

-- Константы для PlaySound
local SND_FILENAME = 0x00020000  -- Звук из файла
local SND_ASYNC = 0x0001         -- Асинхронное воспроизведение
local SND_LOOP = 0x0008          -- Зациклить звук
local SND_NOSTOP = 0x0010        -- Не останавливать текущий звук

-- Функция проигрывания звука
function playSound(filePath, loop)
    local flags = SND_FILENAME + SND_ASYNC
    if loop then
        flags = flags + SND_LOOP + SND_NOSTOP
    end
    
    -- Преобразуем относительный путь в абсолютный
    local fullPath = getWorkingDirectory() .. "\\" .. filePath
    
    -- Проверяем существование файла
    local file = io.open(fullPath, "r")
    if file then
        file:close()
        ffi.C.PlaySoundA(fullPath, nil, flags)
        return true
    else
        sampAddChatMessage("[Звук] {FF6961}Файл не найден: " .. filePath, -1)
        return false
    end
end

-- Функция остановки звука
function stopSound()
    ffi.C.PlaySoundA(nil, nil, 0)
end

function sampev.onServerMessage(color, text)
    if text:find('blabla') then
        playSound("moonloader/beep.wav", false)
    end
end