Ir para conteúdo

Audio Em Lua


joaohd

Posts Recomendados

É isso mesmo! Bom, muita gente não conhece o poder da linguagem lua e constantemente venho batendo nesta tecla para mostrar que pode-se fazer todo tipo de coisa com lua. Hoje venho mostrar a biblioteca ProteaAudio, que executa arquivos .ogg. Para tanto, fiz uma função que executa uma playlist, com a opção de randomizar a execução. Este script surgiu quando eu estava trabalhando na minha equipe para montar um servidor de pokemon com audio, daí as músicas serem de pokemon. Vamos ao script:

 

require("proAudioRt")

-- Função que cria uma playlist e a executa
function play(list, stack, rand, loop)
rand = rand or false
if not proAudio.create() then os.exit(1) end
	if stack == (#list+1) then
		if loop == false then
			proAudio.destroy()
			return false
		else
			stack = 1
		end
	end
		local nex = rand == true and list[math.random(#list)] or list[stack]
		local x = proAudio.sampleFromFile(nex)
		if x then proAudio.soundPlay(x) print("Now playing: ".. nex .. "[".. stack .. "/".. #list .."]") end
			while proAudio.soundActive() ~= 0 do
				proAudio.sleep(0.5)
			end
return play(list, stack+1, rand, loop)
end

-- Minha playlist
local c = {
[1] = "bgm-01.ogg",
[2] = "bgm-02.ogg",
[3] = "bgm-03.ogg",
[4] = "bgm-04.ogg",
[5] = "bgm-05.ogg",
[6] = "bgm-06.ogg",
[7] = "bgm-07.ogg",
[8] = "bgm-08.ogg",
[9] = "bgm-09.ogg",
[10] = "bgm-10.ogg",

}


-- Executa a playlist c, iniciando de 2 com randomização habilitada
play(c, 2, true)

 

Para executar, é necessária a biblioteca ProteaAudio e de preferência o Scite instalados.

 

Você pode também baixar o pacote com todos os arquivos (biblioteca ProteaAudio, função e músicas) aqui.

Removi a dll lua5.1 do pacote pois acusava virus. Caso forem executar, lembrem-se de adicioná-la à pasta dos arquivos.

 

flw

Editado por apocarai
Link para o comentário
Compartilhar em outros sites

Eu conheço dois modos de se fazer isto. Usando algum tipo de dll injection + tibiaapi ou entao um aplicativo que seria responsavel por executar a musica, iniciando junto ao cliente e monitorando alguma porta do pc esperando por pacotes enviados por um outro aplicativo que roda no servidor.

 

O melhor método é o primeiro, mas infelizmente não sei mexer com dll injection e/ou tibiaapi.

 

flw

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...
×
×
  • Criar Novo...