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
.