| Pacote | flash.media |
| Classe | public final class SoundMixer |
| Herança | SoundMixer Object |
| Versão da linguagem: | ActionScript 3.0 |
| Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
sampleData).
| Propriedade | Definido por | ||
|---|---|---|---|
| audioPlaybackMode : String [estático]
Especifica o modo de reprodução de áudio de todos os objetos Sound. | SoundMixer | ||
| bufferTime : int [estático]
O número de segundos para pré-carregar um som de streaming incorporado em um buffer antes que ele inicie o streaming. | SoundMixer | ||
![]() | constructor : Object
Uma referência ao objeto de classe ou à função de construtor de uma determinada ocorrência de objeto. | Object | |
| soundTransform : flash.media:SoundTransform [estático]
O objeto SoundTransform que controla propriedades de som globais. | SoundMixer | ||
| useSpeakerphoneForVoice : Boolean [estático]
Alterna o speakerphone quando o dispositivo está no modo de voz. | SoundMixer | ||
| Método | Definido por | ||
|---|---|---|---|
[estático]
Determina se os sons não são acessíveis devido a restrições de segurança. | SoundMixer | ||
[estático]
Tira um instantâneo da onda sonora atual e o coloca no objeto ByteArray especificado. | SoundMixer | ||
![]() |
Indica se um objeto tem uma propriedade especificada definida. | Object | |
![]() |
Indica se uma ocorrência da classe Object está na cadeia de protótipos do objeto especificado como o parâmetro. | Object | |
![]() |
Indica se a propriedade especificada existe e é enumerável. | Object | |
![]() |
Define a disponibilidade de uma propriedade dinâmica para operações de repetição. | Object | |
[estático]
Para todos os sons em reprodução atualmente. | SoundMixer | ||
![]() |
Retorna a representação da string deste objeto, formatado segundo as convenções específicas para a localidade. | Object | |
![]() |
Retorna a representação de string do objeto especificado. | Object | |
![]() |
Retorna o valor primitivo do objeto especificado. | Object | |
audioPlaybackMode | propriedade |
audioPlaybackMode:String| Versão da linguagem: | ActionScript 3.0 |
| Versões de runtime: | AIR 3 |
Especifica o modo de reprodução de áudio de todos os objetos Sound. Em dispositivos móveis, essa propriedade define prioridades de áudio e padrões conforme os idiomas da plataforma. Em ambientes da área de trabalho e de televisão, nenhuma diferença funcional existe entre os modos de reprodução de áudio.
Os valores válidos desta propriedade são definidos na classe AudioPlaybackMode.
Observação Em iOS, se um aplicativo definir audioPlaybackMode=AudioPlaybackMode.VOICE, outros aplicativos não podem alterá-lo para AudioPlaybackMode.MEDIA.
Faça o uso mínimo do modo AudioPlaybackMode.VOICE, e tente alternar para o modo AudioPlaybackMode.MEDIA assim que puder, depois que a chamada de voz terminar para permitir que outros aplicativos sejam executados no modo mídia.
Quando você altera o modo de reprodução de áudio no iOS, os aplicativos nativos que estão reproduzindo música pausam rapidamente.
O valor padrão é AudioPlaybackMode.MEDIA.
Implementação
public static function get audioPlaybackMode():String public static function set audioPlaybackMode(value:String):voidLança
ArgumentError — kInvalidParameterError
|
Elementos da API relacionados
bufferTime | propriedade |
bufferTime:int| Versão da linguagem: | ActionScript 3.0 |
| Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
O número de segundos para pré-carregar um som de streaming incorporado em um buffer antes que ele inicie o streaming. Os dados em um som carregado, incluindo o tempo de buffer, não podem ser acessados por um arquivo SWF em um domínio diferente, a menos que você implemente um arquivo de política de vários domínios. Para obter mais informações sobre segurança e som, consulte a descrição da classe Sound. Os dados em um som carregado, incluindo o tempo de buffer, não podem ser acessados por um código em um arquivo em um domínio diferente, a menos que você implemente um arquivo de política de vários domínios. Contudo, na caixa de proteção do aplicativo no aplicativo AIR o código pode acessar os dados no arquivo de som a partir de qualquer fonte. Para obter mais informações sobre segurança e som, consulte a descrição da classe Sound.
A propriedade SoundMixer.bufferTime só afeta o tempo de buffer para os sons de streaming incorporados em um SWF e é independente dos objetos Sound criados dinamicamente (ou seja, objetos Sound criados no ActionScript). O valor de SoundMixer.bufferTime não pode substituir ou configurar o padrão do tempo de buffer especificado no objeto SoundLoaderContext que é transmitido para o método Sound.load().
Implementação
public static function get bufferTime():int public static function set bufferTime(value:int):voidElementos da API relacionados
soundTransform | propriedade |
soundTransform:flash.media:SoundTransform| Versão da linguagem: | ActionScript 3.0 |
| Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
O objeto SoundTransform que controla propriedades de som globais. O objeto SoundTransform inclui propriedades para configurar o volume, o panorama, a atribuição do alto-falante esquerdo e a atribuição do alto-falante direito. O objeto SoundTransform usado nesta propriedade fornece configurações finais de som que são aplicadas a todos os sons depois que são aplicadas as configurações individuais do som.
Implementação
public static function get soundTransform():flash.media:SoundTransform public static function set soundTransform(value:flash.media:SoundTransform):voidElementos da API relacionados
useSpeakerphoneForVoice | propriedade |
useSpeakerphoneForVoice:Boolean| Versão da linguagem: | ActionScript 3.0 |
| Versões de runtime: | AIR 3 |
Alterna o speakerphone quando o dispositivo está no modo de voz. Por padrão, os smartphones utilizarão o receptor do telefone como saída de áudio quando SoundMixer.audioPlaybackMode for definido para AudioPlaybackMode.VOICE. A propriedade useSpeakerphoneForVoice permite que você substitua a saída de padrão para que possa implementar um botão speakerphone em um aplicativo telefônico. Esta propriedade não tem nenhum efeito em outros modos, exceto emAudioPlaybackMode.VOICE. Em ambientes de área de trabalho e de televisão, esta propriedade não tem nenhum efeito.
Observação No iOS, se o seu aplicativo definiu audioPlaybackMode=VOICE e outro aplicativo também está sendo executado no modo de voz, não é possível definir useSpeakerphoneForVoice=true.
Observe no Andróide, deve estabelecer o android.permission. MODIFY_AUDIO_SETTINGS no descritor de aplicativo de AIR ou alterar este valor não tem nenhum efeito. Além disso, a configuração é a configuração de dispositivo global. Outros aplicativos que executam no dispositivo podem alterar a configuração dispositivo subjacente em qualquer momento.
O valor padrão é false.
Implementação
public static function get useSpeakerphoneForVoice():Boolean public static function set useSpeakerphoneForVoice(value:Boolean):voidElementos da API relacionados
areSoundsInaccessible | () | método |
public static function areSoundsInaccessible():Boolean| Versão da linguagem: | ActionScript 3.0 |
| Versões de runtime: | AIR 1.0, Flash Player 9 |
Determina se os sons não são acessíveis devido a restrições de segurança. Por exemplo, um som carregado de um domínio diferente daquele do conteúdo chamando este método não pode ser acessado se o servidor do som não tiver um arquivo de política de URL que concede acesso àquele domínio. O som ainda pode ser carregado e reproduzido, mas operações de baixo nível, como obter metadados ID3 para o som, não podem ser realizadas em sons inacessíveis.
Para o conteúdo AIR na área de segurança do aplicativo, o chamado deste método sempre retorna false. Todos os sons, incluindo aqueles carregados de outros domínios, estão acessíveis para o conteúdo na área de segurança.
Boolean — Representação do booliano em formato de string.
|
Elementos da API relacionados
computeSpectrum | () | método |
public static function computeSpectrum(outputArray:ByteArray, FFTMode:Boolean = false, stretchFactor:int = 0):void| Versão da linguagem: | ActionScript 3.0 |
| Versões de runtime: | AIR 1.0, Flash Player 9 |
Tira um instantâneo da onda sonora atual e o coloca no objeto ByteArray especificado. Os valores são formatados como valores normalizados de ponto flutuante, no intervalo –1,0 a 1,0. O objeto ByteArray transmitido para o parâmetro outputArray é substituído pelos novos valores. O tamanho do objeto ByteArray criado é fixado em 512 valores de ponto flutuante, nos quais os primeiros 256 valores representam o canal esquerdo, e os 256 valores seguintes representam o canal direito.
Observação: esse método está sujeito às restrições locais de segurança de arquivo e às restrições no carregamento entre vários domínios. Se você estiver trabalhando com arquivos locais ou sons carregados de um servidor em um domínio diferente do que o conteúdo de chamada, talvez seja necessário tratar das restrições da caixa de proteção através de um arquivo de política entre vários domínios. Para obter mais informações, consulte a descrição da classe Sound. Além disso, este método não pode ser usado para extrair dados de fluxos RTMP, mesmo que seja chamado pelo conteúdo residente no mesmo domínio que o servidor RTMP.
Este método é suportado pelo RTMP no Flash Player 9.0.115.0 e posterior e no Adobe AIR. Você pode controlar o acesso a fluxos no Flash Media Server em um script do lado do servidor. Para obter mais informações, consulte as propriedades Client.audioSampleAccess e Client.videoSampleAccess na Referência de lado do servidor do ActionScript para Adobe Flash Media Server.
Parâmetros
outputArray:ByteArray — Um objeto ByteArray que mantém os valores associados com o som. Se não houver sons disponíveis devido a restrições de segurança (areSoundsInaccessible == true), o objeto outputArray fica inalterado. Se todos os sons forem interrompidos, o objeto outputArray é preenchido com zeros.
| |
FFTMode:Boolean (default = false) — Um valor booliano indicando se foi realizada uma transformação Fourier nos dados de som primeiro. A definição deste parâmetro como true faz com que o método retorne um espectro de frequência, em vez da onda de som bruta. No espectro de frequência, as baixas frequências são representadas à esquerda e as altas frequências, à direita.
| |
stretchFactor:int (default = 0) — A resolução das amostras de som. Se você definir o valor stretchFactor em 0, os dados são amostrados a 44,1 KHz; com o valor 1, os dados são amostrados a 22,05 KHz; com o valor 2, os dados são amostrados a 11,025 KHz; e assim por diante.
|
Elementos da API relacionados
flash.utils.ByteArray
flash.media.Sound
flash.media.SoundLoaderContext.checkPolicyFile
Exemplo ( Como usar este exemplo )
computeSpectrum() é usado para produzir uma representação gráfico dos dados da onda do som.
No construtor, um arquivo de som é carregado e configurado para reprodução. (Não há tratamento de erro neste exemplo e assume-se que o arquivo de som se encontra no mesmo diretório que o arquivo SWF.) O exemplo ouve o evento Event.ENTER_FRAME enquanto o som é reproduzido, disparando repetidamente o método onEnterFrame() para desenhar um gráfico dos valores de dados do som. Quando o som termina de ser reproduzido, o método onPlaybackComplete() interrompe o processo de desenho removendo o ouvinte para o evento Event.ENTER_FRAME.
No método onEnterFrame(), o método computeSpectrum() armazena o som bruto no objeto da matriz de bytes bytes. Os dados são amostrados a 44,1 KHz. A matriz de bytes contendo 512 bytes de dados, e cada um delas contém um valor de ponto flutuante entre –1 e 1. Os primeiros 256 valores representam o canal esquerdo, e os 256 valores seguintes representam o canal direito. O primeiro loop for lê os primeiros 256 valores de dados (o canal estéreo esquerdo) e desenha uma linha de cada ponta para o próximo usando o método Graphics.lineTo(). (A exibição do gráfico de vetor da onda de som é gravada diretamente no objeto da entidade gráfica da classe.) Os bytes do som são lidos como um número de ponto flutuante de 32 bits a partir do fluxo de bytes e multiplicados pela altura de plot, para permitir o intervalo vertical do gráfico. A largura é definida como o dobro da largura da extensão do canal. O segundo loop for lê o próximo conjunto de 256 valores (o canal estéreo direito) e plota as linhas na ordem inversa. Os métodos g.lineTo(CHANNEL_LENGTH * 2, PLOT_HEIGHT); e g.lineTo(0, PLOT_HEIGHT); desenham a linha de base para as ondas. O plot resultante do formato de onda produz um efeito de imagem de espelho.
package {
import flash.display.Sprite;
import flash.display.Graphics;
import flash.events.Event;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundMixer;
import flash.net.URLRequest;
import flash.utils.ByteArray;
import flash.text.TextField;
public class SoundMixer_computeSpectrumExample extends Sprite {
public function SoundMixer_computeSpectrumExample() {
var snd:Sound = new Sound();
var req:URLRequest = new URLRequest("Song1.mp3");
snd.load(req);
var channel:SoundChannel;
channel = snd.play();
addEventListener(Event.ENTER_FRAME, onEnterFrame);
channel.addEventListener(Event.SOUND_COMPLETE, onPlaybackComplete);
}
private function onEnterFrame(event:Event):void {
var bytes:ByteArray = new ByteArray();
const PLOT_HEIGHT:int = 200;
const CHANNEL_LENGTH:int = 256;
SoundMixer.computeSpectrum(bytes, false, 0);
var g:Graphics = this.graphics;
g.clear();
g.lineStyle(0, 0x6600CC);
g.beginFill(0x6600CC);
g.moveTo(0, PLOT_HEIGHT);
var n:Number = 0;
for (var i:int = 0; i < CHANNEL_LENGTH; i++) {
n = (bytes.readFloat() * PLOT_HEIGHT);
g.lineTo(i * 2, PLOT_HEIGHT - n);
}
g.lineTo(CHANNEL_LENGTH * 2, PLOT_HEIGHT);
g.endFill();
g.lineStyle(0, 0xCC0066);
g.beginFill(0xCC0066, 0.5);
g.moveTo(CHANNEL_LENGTH * 2, PLOT_HEIGHT);
for (i = CHANNEL_LENGTH; i > 0; i--) {
n = (bytes.readFloat() * PLOT_HEIGHT);
g.lineTo(i * 2, PLOT_HEIGHT - n);
}
g.lineTo(0, PLOT_HEIGHT);
g.endFill();
}
private function onPlaybackComplete(event:Event):void {
removeEventListener(Event.ENTER_FRAME, onEnterFrame);
}
}
}
stopAll | () | método |
public static function stopAll():void| Versão da linguagem: | ActionScript 3.0 |
| Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Para todos os sons em reprodução atualmente.
>No Flash Professional, este método não para a cabeça de reprodução. Os sons configurados para stream vão retomar a reprodução à medida que o indicador de reprodução se move sobre os quadros nos quais se localizam.
Ao usar essa propriedade, considere o seguinte modelo de segurança:
- Por padrão, chamar o método
SoundMixer.stopAll()interrompe apenas os sons na mesma sandbox de segurança que o objeto que está chamando o método. O som cuja reprodução não foi iniciada da mesma sandbox que o objeto que chama não é interrompido. - Ao carregar o som, usando o método
load()da classe Sound, você pode especificar um parâmetrocontext, que é um objeto SoundLoaderContext. Se você definir a propriedadecheckPolicyFiledo objeto SoundLoaderContext comotrue, o Flash Player ou o Air verifica se há um arquivo de política de vários domínios no servidor do qual o som é carregado. Se o servidor tiver um arquivo de política de vários domínios, e o arquivo permitir o domínio do conteúdo de chamada, então o arquivo pode interromper o som carregado usando o métodoSoundMixer.stopAll(); do contrário, ele não pode interromper.
Contudo, no Adobe AIR, o conteúdo na caixa de proteção de segurança application (conteúdo instalado com o Adobe AIR) não é restringido por essas limitações de segurança.
Para obter mais informações relacionadas à segurança, consulte o tópico do Centro dos desenvolvedores do Flash Player Security.
Exemplo ( Como usar este exemplo )
stopAll() é usado para emudecer dois sons que estão sendo reproduzidos ao mesmo tempo.
No construtor, dois arquivos de som diferentes são carregados e configurados para reprodução. O primeiro som é carregado localmente e é atribuído a um canal de som. (Assume-se que o arquivo de som se encontra no mesmo diretório que o arquivo SWF.) O segundo arquivo é carregado e sofre streaming do site da Adobe. Para usar o método SoundMixer.stopAll(), todo o som deve estar acessível. (Pode-se usar um objeto SoundLoaderContext para verificar se há um arquivo de política de vários domínios.) Cada som também tem um ouvinte de evento que é invocado caso tenha ocorrido um erro IO enquanto o arquivo de som estava sendo carregado. Também é criado um campo de texto muteButton. Ele ouve um evento de clique que vai chamar o método muteButtonClickHandler().
No método muteButtonClickHandler(), caso o conteúdo do campo de texto seja "MUTE", o método areSoundsInaccessible() verifica se o mixer de som tem acesso aos arquivos. Se os arquivos estiverem acessíveis, o método stopAll() interrompe os sons. Selecionando o campo de texto novamente, o primeiro som começa a ser reproduzido e o conteúdo do campo de texto troca para "MUTE" novamente. Dessa vez, o método stopAll() tira o volume do som que está sendo executado. Observe que o método stop() do canal de som também pode ser usado para parar um som específico atribuído ao canal. (Para usar a funcionalidade de canal, o som precisa ser reatribuído ao canal todas as vezes que o método play() for invocado.)
package {
import flash.display.Sprite;
import flash.net.URLRequest;
import flash.media.Sound;
import flash.media.SoundLoaderContext;
import flash.media.SoundChannel;
import flash.media.SoundMixer;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.events.MouseEvent;
import flash.events.IOErrorEvent;
public class SoundMixer_stopAllExample extends Sprite {
private var firstSound:Sound = new Sound();
private var secondSound:Sound = new Sound();
private var muteButton:TextField = new TextField();
private var channel1:SoundChannel = new SoundChannel();
public function SoundMixer_stopAllExample() {
firstSound.load(new URLRequest("mySound.mp3"));
secondSound.load(new URLRequest("http://av.adobe.com/podcast/csbu_dev_podcast_epi_2.mp3"));
firstSound.addEventListener(IOErrorEvent.IO_ERROR, firstSoundErrorHandler);
secondSound.addEventListener(IOErrorEvent.IO_ERROR, secondSoundErrorHandler);
channel1 = firstSound.play();
secondSound.play();
muteButton.autoSize = TextFieldAutoSize.LEFT;
muteButton.border = true;
muteButton.background = true;
muteButton.text = "MUTE";
muteButton.addEventListener(MouseEvent.CLICK, muteButtonClickHandler);
this.addChild(muteButton);
}
private function muteButtonClickHandler(event:MouseEvent):void {
if(muteButton.text == "MUTE") {
if(SoundMixer.areSoundsInaccessible() == false) {
SoundMixer.stopAll();
muteButton.text = "click to play only one of sound.";
}
else {
muteButton.text = "The sounds are not accessible.";
}
}
else {
firstSound.play();
muteButton.text = "MUTE";
}
}
private function firstSoundErrorHandler(errorEvent:IOErrorEvent):void {
trace(errorEvent.text);
}
private function secondSoundErrorHandler(errorEvent:IOErrorEvent):void {
trace(errorEvent.text);
}
}
}
Wed Jun 13 2018, 11:10 AM Z
Ocultar propriedades públicas herdadas
Mostrar propriedades públicas herdadas