Trabalho com arquivos de fluxo de som

Flash Player 9 e posterior, Adobe AIR 1.0 e posterior

A reprodução de um arquivo de som ou de vídeo enquanto seus dados ainda estão sendo carregados é conhecida como streaming . Arquivos de som externos que são carregados de um servidor remoto normalmente são transmitidos em fluxo para que o usuário não precise aguardar até que todos os dados do som sejam carregados para ouvir o som.

A propriedade SoundMixer.bufferTime representa o número de milissegundos de dados de som que o Flash Player ou o AIR deve coletar antes de permitir a reprodução do som. Em outras palavras, se a propriedade bufferTime estiver definida como 5000, o Flash Player ou o AIR carregarão pelo menos 5000 milissegundos de dados do arquivo de som antes de iniciar a reprodução do som. O valor padrão SoundMixer.bufferTime é 1000.

O aplicativo pode substituir o valor global SoundMixer.bufferTime de um som individual especificando explicitamente um novo valor de bufferTime ao carregar o som. Para substituir o tempo de buffer padrão, primeiro crie uma nova ocorrência da classe SoundLoaderContext, defina sua propriedade bufferTime e, em seguida, passe-a como um parâmetro para o método Sound.load() , conforme mostrado a seguir:

import flash.media.Sound; 
import flash.media.SoundLoaderContext; 
import flash.net.URLRequest; 
 
var s:Sound = new Sound(); 
var req:URLRequest = new URLRequest("bigSound.mp3"); 
var context:SoundLoaderContext = new SoundLoaderContext(8000, true); 
s.load(req, context); 
s.play();

Conforme a reprodução continua, o Flash Player e o AIR tentam manter o buffer de som do mesmo tamanho ou maior. Se os dados do som forem carregados mais rapidamente do que a velocidade de reprodução, a reprodução continuará sem interrupção. No entanto, se a taxa de carregamento de dados for reduzida devido a limitações da rede, o indicador de reprodução poderá atingir o final do buffer de som. Nesse caso, a reprodução será suspensa, embora ela seja reiniciada automaticamente quando mais dados de som forem carregados.

Para descobrir se a reprodução está suspensa porque o Flash Player ou o AIR estão aguardando o carregamento dos dados, use a propriedade Sound.isBuffering .