Audio Streams em SA:MP. -
Kon_BR - 30.09.2012
╔═══════════════════════════════════════╗
Audio Streams SA:MP
.................................................. .................................................. .................By Kon_BR
╚═══════════════════════════════════════╝
- Este tutorial possui trкs partes :
* Introduзгo, informaзхes & etc.
• Upar/Pegar o URL da sua musica + pegar IPs das rбdios.
• Usando/Aplicando as funзхes.
Introduзгo
- Bom pessoal, estava sem nada pra fazer (sempre, parece ehhehhue) e decidi fazer este "pequeno" tutorial sobre Audio Streams, onde explico ou pelo menos tento onde ou como pegar os URLs para a funзгo da бudio stream dentro do script.
- Qualquer coisa que eu esqueci digam. Isso irб me ajudar a adicionar mais informaзхes ao tutorial. Critique а vontade. :b
Links Ъteis
PlayAudioStreamForPlayer
StopAudioStreamForPlayer
Mp3Skull
DropBox
Tutorial de como usar o DropBox - By ViictorDaay
Video ensinando a usar o mesmo - By humildadeforever
Informaзхes
- "Streaming (fluxo, ou fluxo de mнdia)й uma forma de distribuir informaзгo de audio e video pela Internet atravйs de pacotes."
- Beleza, Audio Stream pode ser basicamente entendida (Num servidor de SA:MP) como um audio que й emitido dentro do jogo por um link/ip/hospedagem (URL).
Begin !
Parte 1 - Pegando o URL da sua mъsica.
Simplesmente, basta vocк correr atrбs do URL da mъsica (Copiando o endereзo de link, caso o mesmo esteja "acoplado" em alguma imagem ou algo do tipo.) onde a mesma й executada (como no caso da imagem do 4є passo, logo abaixo) ou baixada/apareзa para fazer download. Se vocк entender e conseguir fazer isto, pode pular esta parte do tutorial jб. ^^
Beleza, vamos comeзar.
1є - Antes de tudo, conheзa o site http://mp3skull.com, bom site para encontrar e baixar mъsicas.
2є - Apуs procurar sua musica no site vocк se deparб com uma lista de vбrias alternativas da qual vocк pesquisou (desde a mъsica normal atй modificadas,remix,etc.) :
3є - Ao escolher uma alternativa/mъsica da lista que lhe agrade, clique em "Download" (Logo abaixo do nome da mъsica.) :
4є - Agora a parte mais importante, preste atenзгo. Dependendo no link do "Download", ao cliar, vocк poderб ser direcionado diretamente а pбgina da musica (onde a mesma toque e para baixa-lб vocк precisa "salva-lб como formato" e blб blб blб.) como por exemplo :
Torзa para que sempre o link que vocк queira seja assim, pois, caso vocк seja redirecionado а uma pбgina do tipo (que executa a mъsica) ficarб muito mais fбcil, basta vocк copiar o link da pagina (que no meu caso й "http://www.bily.profitux.cz/files/eminem_lose%20yourself.mp3") e vocк jб terб o link da musica para seu Audio Stream. ;)
Caso, nгo seja como a imagem а cima, vocк precisarб pegar o link onde vocк clica e a mъsica й baixada ou ouvida(tocada). Como um exemplo na imagem abaixo :
Isso varia dependendo de onde o "Download" lhe direcionar, o importante й que vocк saiba pegar o link da musica correto.
Feito, agora possuнmos o link da mъsica, pronto para o uso na funзгo no teu script ! Agora, caso vocк nгo encontre a tal musica/audio seu, vocк pode upar a mъsica ou qualquer outro som que vocк queira no DropBox. (Outro site muito bom pra isso.) O que й muito, mas MUITO simples depois que aprende ! Veja os links sobre tutorial de como usa-lo em "Links Uteis" aqui mesmo, no tуpico logo а cima.
Parte 1.2 - Pegando o IP de uma rбdio
Ok, de fato existe muitos tutoriais melhores sobre isso, e atй mais prбticos, porйm, quanto o fato de ser mais fбcil, este tutorial, digo, site pode facilmente ganhar. Let's go !
1є - Entre no site "http://www.planetaxat.com/radio/".
2є - Vocк de cara encontrarб a parte onde pesquisa a tal rбdio, "Buscador de rбdio de Xat" ali, vocк verб duas opзхes, para pesquisar, "Palavras:" e para escolher um gкnero. Como na imagem :
Entгo, vocк escolhe. Ou pesquise um nome de uma rбdio qualquer que conheзa, ou pesquisa ordenando pelo gкnero
3є - Ao encontrar a rбdio que queira basta clicar no botгo "Obter IP" e escolher um dos IPs (caso teja mais de um) :
Feito ! Agora temos o IP(URL) da rбdio para a audio stream.
Parte 2 - Usando e entendendo as funзхes
Vamos lб!
1є - Vamos entender as funзхes existentes para as Audios Streams no SA:MP.
PlayAudioStreamForPlayer - Inicia a musica pelo URL que й inserido na funзгo para o tal player (playerid), e caso use o resto dos parвmetros, em tal posiзгo, tambйm. || "Esta funзгo permite que vocк inicie/toque um audiostream para um jogador especнfico. Todos os parвmetros, exceto o "playerid" e o "url[]" й opcional."
Quote:
Parametros:
(playerid, url[], Float:posX = 0.0, Float:posY = 0.0, Float:posZ = 0.0, Float:distance = 50.0, usepos = 0)
playerid - O tal player no qual irб ouvir o Audio Stream.
url[] - O URL no qual estб o бudio e serб executado. Formatos validos : mp3 e ogg/vorbis.
Float:PosX - A posiзгo X que irб ser executado o audio. Padrгo : 0.0. Nгo terб efeito caso o "usepos" estб "0" (desativado).
Float:PosY - A posiзгo Y que irб ser executado o audio. Padrгo : 0.0. Nгo terб efeito caso o "usepos" estб "0" (desativado).
Float:PosZ - A posiзгo Z que irб ser executado o audio. Padrгo : 0.0. Nгo terб efeito caso o "usepos" estб "0" (desativado).
Float:distance - A distвncia sobre a qual o бudio serб transmitido. Nгo terб efeito caso o "usepos" estб "0" (desativado).
usepos - Define se os parвmetros de posiзхes e distвncia serгo usados. Padrгo : desativado (0).
|
StopAudioStreamForPlayer - Para qualquer бudio que estб tocando, independente/nгo necessбrio da posiзгo, etc. || "Interrompe o audiostream para o tal jogador."
Quote:
Parametros:
(playerid)
playerid - O tal player no qual terб o бudio parado.
|
2є - Agora vamos, finalmente unir todo o nosso trabalho na parte 1 para as funзхes. Simples. No que vocк unirб da parte 1 com as funзхes й apenas o link/ip(URL) da mъsica/rбdio. Veja :
pawn Код:
PlayAudioStreamForPlayer(playerid, "(URL/IP da mъsica/rбdio aqui, entre as aspas.)");
O URL serб o mesmo, independente se vocк fizer essa funзгo usando todos aqueles esquemas de posiзгo, distвncia e etc.
Finalmente, temos a funзгo com o URL do бudio stream ! ^^
Exemplos
- Comandos de ouvir uma rбdio (TechnoBase.FM) e parar o бudio.
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/radioeletronica", cmdtext, true) == 0) // ~ Comando para ouvir uma rбdio.
{
PlayAudioStreamForPlayer(playerid, "http://80.237.155.73:80"); // - A funзгo de iniciar o бudio (rбdio).
SendClientMessage(playerid, -1, "» Agora vocк estб ouvindo a rбdio TechnoBase.FM (Eletronica/Techno) !"); // - Mensagem enviada para o player que iniciou o бudio e blб blб blб.
return 1;
}
if (strcmp("/pararaudio",cmdtext, true) == 0) // ~ Comando para parar o бudio.
{
StopAudioStreamForPlayer(playerid); // - A funзгo de parar/desligar o бudio.
SendClientMessage(playerid, -1,"» Vocк parou/desligou o бudio (Rбdio/Musica) para vocк mesmo ! "); // - Mensagem enviada para o player que parou o бudio e blб blб blб.
return 1;
}
return 0;
}
* Obs : dб pra notar que eu usei ou coloquei apenas dois dos 7 parвmetros da funзгo "PlayAudioStreamForPlayer", pois, na prуpria explicaзгo dos parвmetros diz que tem um padrгo (que no caso й 0, ou das floats, 0.0) ou que dependem da "usepos", e por isso se tornam opcional. No caso do meu comando de tocar a rбdio, ela й tocada independente da posiзгo do player que usou o comando. :b
- Deixo duas stocks bem interessantes tambйm dessas duas funзхes sу que pro server todo. (PlayAudioStreamForAll e StopAudioStreamForAll)
pawn Код:
// ~ Audio Stream para todos.
stock PlayAudioStreamForAll(url[])
{
for(new i = 0, e = GetMaxPlayers(); i < e; i++)
{
if(IsPlayerConnected(i))
{
PlayAudioStreamForPlayer(i, url);
}
}
return 1;
}
// ~ Parar Audio Stream para todos.
stock StopAudioStreamForAll()
{
for(new i = 0, e = GetMaxPlayers(); i < e; i++)
{
if(IsPlayerConnected(i))
{
StopAudioStreamForPlayer(i);
}
}
return 1;
}
The end. ^^
Observaзхes
- Vale a pena ressaltar que a funзгo que as Audios Streams exercem, depende da net do player no qual irб ouvir. Atй onde eu sei, nгo causa NENHUM LAG NO SERVIDOR, o que afeta й o player, dependendo da net dele, ele poderб ouvir facilmente, sem nenhum problemas a rбdio/mъsica ou poderб ouvir com travadas/lag.
Quote:
Originally Posted by .FuneraL.
a qualidade de execuзгo depende da conexгo.
|
- Devo lembrar que os ъnicos formatos permitidos pela funзгo й mp3 e ogg/vorbis. ("Valid formats are mp3 and ogg/vorbis.")
- Outra coisa idiota, porйm muitas pessoas irгo se confundir. Caso vocкs notem que a Audio Stream nгo toque e nгo apareзa aquela mensagem em verde ("Audio Stream: http://[...]") й simplesmente porque o бudio do jogo das suas opзхes(rбdio) estб desativado/completamente baixo. Entгo verifique sempre nas opзхes antes de iniciar uma audio stream no jogo. - Caso falte alguma coisa neste tutorial, digam. Nгo sу me ajuda, como ajuda os outros que visualizam-no tambйm. :D
Creditos
Tutorial completamente feito por mim. (Kon_BR || Twist)
SAMP e SA-MP Forums.
Enjoy :D
Re: Audio Streams em SA:MP. -
Ouro - 30.09.2012
Bem bolado, explicativo e йpico.
Parabйns.
Re: Audio Streams em SA:MP. -
Don_Speed - 30.09.2012
So gostei da parte de pegr ipґs de radio e link de musica ...
Re: Audio Streams em SA:MP. -
paulor - 30.09.2012
Belo tutorial, Parabйns!! REP += 6.
Re: Audio Streams em SA:MP. -
humildadeforever - 30.09.2012
Tуpico organizado e tudo bem explicadinho! Nota 11/10 :]
Re: Audio Streams em SA:MP. -
Kuddy - 30.09.2012
Belo tutorial, bem explicado
Re: Audio Streams em SA:MP. -
darkxdll - 30.09.2012
Уtimo tutorial . Uma duvida ,
й sу aqui ou quando comeзa a tocar sons comeзa a dar umas travadinhas ?
Re: Audio Streams em SA:MP. -
Kuddy - 30.09.2012
Quote:
Originally Posted by darkxdll
Уtimo tutorial . Uma duvida ,
й sу aqui ou quando comeзa a tocar sons comeзa a dar umas travadinhas ?
|
Й normal isso =/
Da umas travadinhas no meu pc e no meu not tb '-'
Re: Audio Streams em SA:MP. -
.FuneraL. - 30.09.2012
Quote:
Originally Posted by darkxdll
Уtimo tutorial . Uma duvida ,
й sу aqui ou quando comeзa a tocar sons comeзa a dar umas travadinhas ?
|
Уtimo tutorial, Sу nгo aprende quem nгo quer realmente, e Respondendo a sua dъvida dark, as travadinhas, sгo porque talvez sua conexгo nгo esteja muito boa, hб boatos de que o audio stream, pode causar lag se a internet nгo for boa, a qualidade de execuзгo depende da conexгo.
Re: Audio Streams em SA:MP. -
Rhayziin - 30.09.2012
Quote:
Originally Posted by .FuneraL.
Уtimo tutorial, Sу nгo aprende quem nгo quer realmente, e Respondendo a sua dъvida dark, as travadinhas, sгo porque talvez sua conexгo nгo esteja muito boa, hб boatos de que o audio stream, pode causar lag se a internet nгo for boa, a qualidade de execuзгo depende da conexгo.
|
Tem algum jeito de quando der essas "travadinhas" parar o audiostream?
Porque jб tenho minha lуgica, se o ping do player tiver alto, quando comeзar o audiostream, coloco pra abrir um MSGBOX, dizendo que a conexгo estб ruim e teve que parar a mъsica/audio!
kkkk Sei nem oque eu fiz, mas ta ae:
pawn Код:
#include <a_samp>
#define FILTERSCRIPT
#include <zcmd>
new bool:Tocando[MAX_PLAYERS];
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" [FS] Anti-Conexгo ruim kkk!");
print("--------------------------------------\n");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public OnPlayerUpdate(playerid)
{
if(GetPlayerPing(playerid) > 500)
{
if(Tocando[playerid] == true)
{
new kString[200], kName[MAX_PLAYER_NAME];
GetPlayerName(playerid, kName, MAX_PLAYER_NAME);
format(kString, sizeof(kString), "{7FFFD4}Olб {AFEEEE}%s{7FFFD4}, seu ping estб muito alto, e foi parada o audio/mъsica.",kName);
ShowPlayerDialog(playerid, 147, DIALOG_STYLE_MSGBOX, "Informaзгo",kString,"Fechar","");
StopAudioStreamForPlayer(playerid);
Tocando[playerid] = false;
}
}
return 1;
}
CMD:musica(playerid)
{
if(Tocando[playerid] == false)
{
PlayAudioStreamForPlayer(playerid, "http://80.237.155.73:80");
Tocando[playerid] = true;
}
else
{
SendClientMessage(playerid, -1, "Sua mъsica jб estб tocando!");
}
return 1;
}
ou
pawn Код:
#include <a_samp>
#define FILTERSCRIPT
#include <zcmd>
#define pMAX_PING 500 //Se o player tiver este ping e estiver ouvindo a mъsica, vai parar a mъsica!
#define DIALOG_STOP 147 //Dialog
#define SegundosChamarPublic 1 //Segundos que vai chamar a public (RECOMENDAVEL: deixe assim mesmo)
new bool:Tocando[MAX_PLAYERS];
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" [FS] Anti Net б Manivela[AUDIO STREAM]");
print(" By: Rhay_Fither");
print("--------------------------------------\n");
SetTimer("VerificandoPing",SegundosChamarPublic*1000,true);
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
CMD:musica(playerid)
{
if(Tocando[playerid] == false)
{
PlayAudioStreamForPlayer(playerid, "http://80.237.155.73:80");
Tocando[playerid] = true;
}
else
{
SendClientMessage(playerid, -1, "Sua mъsica jб estб tocando!");
}
return 1;
}
forward VerificandoPing(playerid);
public VerificandoPing(playerid)
{
if(GetPlayerPing(playerid) > pMAX_PING)
{
if(Tocando[playerid] == true)
{
new kString[200], kName[MAX_PLAYER_NAME];
GetPlayerName(playerid, kName, MAX_PLAYER_NAME);
format(kString, sizeof(kString), "{7FFFD4}Olб {AFEEEE}%s{7FFFD4}, seu ping estб muito alto, e foi parada o audio/mъsica.",kName);
ShowPlayerDialog(playerid, DIALOG_STOP, DIALOG_STYLE_MSGBOX, "Informaзгo",kString,"Fechar","");
StopAudioStreamForPlayer(playerid);
Tocando[playerid] = false;
}
}
return 1;
}