Streaming de áudio

Reproduza streams de áudio em direto na sua scene.

Você pode transmitir áudio a partir de uma URL. Isso é útil para reproduzir música diretamente de uma rádio na internet ou transmitir uma conferência para a sua scene.

💡 Dica: No Scene Editor no Creator Hub, você pode usar um Audio Stream Smart Item para uma forma sem código de conseguir isso.

O áudio na origem deve estar em um dos seguintes formatos: .mp3, ogg, ou aac. A origem também deve ser uma https URL (http URLs não são compatíveis), e a origem deve ter políticas CORS (Cross Origin Resource Sharing) que permitam o acesso externo. Se esse não for o caso, talvez seja necessário configurar um server para atuar como proxy e expor o stream de uma forma válida.

Para adicionar um audio stream na sua scene, basta adicionar um AudioStream component a uma entity:

const streamEntity = engine.addEntity()

AudioStream.create(streamEntity, {
	url: 'https://icecast.ravepartyradio.org/ravepartyradio-192.mp3',
	playing: true,
	volume: 0.8,
})

Defina o volume do AudioStream component alterando sua volume property.

Ative ou desative o AudioStream component definindo sua playing property como true ou false.

📔 Nota: Nem todos os serviços de streaming permitem que você reproduza o áudio deles fora do site. A seguir estão alguns exemplos que funcionam no Decentraland:

DELTA = "https://cdn.instream.audio/:9069/stream?_=171cd6c2b6e"
GRAFFITI = "https://n07.radiojar.com/2qm1fc5kb.m4a?1617129761=&rj-tok=AAABeIR7VqwAilDFeUM39SDjmw&rj-ttl=5"
ISLA NEGRA = "https://radioislanegra.org/listen/up/basic.aac"

Estado do stream

Consulte o estado de um audio stream usando a função AudioStream.getAudioState(), passando a entity que possui o AudioStream component.

O estado retornado é um valor do MediaState enum. Este enum tem os seguintes valores possíveis:

  • MS_BUFFERING

  • MS_ERROR

  • MS_LOADING

  • MS_NONE

  • MS_PAUSED

  • MS_PLAYING

  • MS_READY

  • MS_SEEKING

O exemplo a seguir verifica o estado de um stream e registra logs quando houver uma mudança.

Áudio espacial

Por padrão, o áudio de um AudioStream component é global, o que significa que ele será ouvido com um volume consistente em toda a sua scene. Se um player sair da scene, ele não ouvirá o stream de forma alguma.

Para tornar o áudio espacial, defina o spatial property como true.

O áudio agora será ouvido a partir da posição da entity que possui o AudioStream component, e ficará mais alto conforme o player se aproximar dele.

Controle o áudio espacial com as seguintes properties:

  • spatialMinDistance: A distância mínima na qual o áudio se torna espacial. Se o player estiver mais perto, o áudio será ouvido em volume máximo. 0 por padrão.

  • spatialMaxDistance: A distância máxima na qual o áudio é ouvido. Se o player estiver mais longe, o áudio será ouvido com volume 0. 60 por padrão

Análise de áudio

Você pode ler dados de amplitude e frequência em tempo real de uma AudioStream entity para acionar visuais reativos, como equalizadores ou luzes pulsantes no ritmo. Veja Análise de áudio.

Atualizado