Mobile Media API - JSR 135 Advanced Multimedia Supplements - JSR 234 Grupo 5 Wanessa Machado do Amaral Everton Luiz de Almeida Gago Júnior 1 Advanced Multimedia Supplements - JSR 234 z z z Estabelecido a partir da Mobile Media API (MMAPI – JSR 135). Novos controles em javax.microedition.amms.control e sub pacotes. Novas extensões em javax.microedition.amms 2 Pacotes z javax.microedition.amms z javax.microedition.amms.control z javax.microedition.amms.audio3d z javax.microedition.amms.audioeffect z javax.microedition.amms.camera z javax.microedition.amms.imageeffect z javax.microedition.amms.tunner 3 javax.microedition.amms z Module z EffectModule z SoundSource3D z MediaProcessor z GlobalManager z MediaProcessorListener z Spectator 4 Module z A interface Module deriva da interface Controllable, permitindo adicionar ou remover Players e canais de MIDI. − Um objeto Module não pode ser obtido a partir de qualquer lugar, geralmente as sub-interfaces EffectModule e SoundSource3D são utilizadas. − EffectModule permite aplicar uma seqüencia de efeitos comuns, otimizando o processamento de áudio. − SoundSource3D representa uma fonte sonora. 5 MediaProcessor z z É uma interface de pós-processamento que deriva da interface Controllable, e destina-se a diferentes tipos de mídia. Estados do MediaProcessor: − UNREALIZED – Não está pronto para tratar entrada, e saída ainda não definida. − REALIZED – Pronto para iniciar, porém nenhuma transformação está em curso. − STARTED – Iniciado. − STOPPED – Interrompido temporariamente. − UNKNOWN – Comprimento da mídia ou progresso do tratamento é desconhecido. 6 MediaProcessorListener z z É uma interface utilizada para receber eventos gerados por um MediaProcessor. Estados: − PROCESSING_ABORTED – Transformação interrompida, e o estado do MediaProcessor é UNREALIZED. − PROCESSING_COMPLETED - Transformação completa, e o estado do MediaProcessor é UNREALIZED. − PROCESSING_ERROR – Tratamento interrompido devido a erros, estado do MediaProcessor é REALIZED. − PROCESSING_STARTED – Indica que o MediaProcessor foi iniciado e está processando a entrada. − PROCESSING_STOPPED – Indica que o MediaProcessor foi pausado. − PROCESSING_REALIZED – O estado do MediaProcessor foi transferido de UNREALIZED para REALIZED. 7 GlobalManager z z A classe GlobalManager trata a criação de EffectsModules, SoundSource3D e MediaProcessor´s. Exemplos: − EffectModule em = GlobalManager.createEffectModule(); − MediaProcessor mp = GlobalManager.createMediaProcessor(String inputType); − SoundSource3D ss = GlobalManager.createSoundSource3D(); 8 Spectator z Classe que implementa a interface Controllable, e pode ser obtido a partir da classe GlobalManager (GlobalManager.getSpectator()). A classe Spectator representa um ouvinte no espaço virtual acústico. 9 javax.microedition.amms.control z AudioFormatControl z ContainerFormatControl z EffectControl z EffectOrderControl z FormatControl z ImageFormatControl z MIDIChannelControl z PanControl z PriorityControl z VideoFormatControl 1 0 ContainerFormatControl z z Interface que deriva de FormatControl, permitindo controlar e configurar o container de formatos, especificando o formato de arquivos de áudio-vídeo, através do método setFormat(String). Se um Player ou um MediaProcessor provê um ContainerFormatControl, este provê um AudioFormatControl e um VideoFormatControl. 1 1 FormatControl z z Formatos são alterados quando a mídia é capturada de um player, ou, se o mesmo sofrer alteração durante o processamento da mídia por um MediaProcessor. A interface FormatControl possui métodos para especificar os parâmetros e configurações que afetam formatos. − String format = getFormat(); − setFormat(String format); 1 2 AudioFormatControl z z Interface que deriva de FormatControl, responsável por gerenciar configurações e formatos de áudio, adicionando codec para diferentes formatos de mídia. Configurando registro de áudio MP3 para 128 kbps: AudioFormatControl format = (AudioFormatControl) player.getControl(“AudioFormatControl”); format.setFormat(“audio/mpeg”); format.setParameter(FormatControl.PARAM_VERSION_TYPE, MPEG1_layer_3”); format.setParameter(FormatControl.PARAM_BITRATE, 128000); 1 3 EffectControl z z É uma interface para controlar filtros abstratos com diferentes configurações. Individualmente, os efeitos podem ter vários parâmetros. Valores de Escopo − SCOPE_LIVE_AND_RECORD – Constante utilizada para identificar partes do efeito. − SCOPE_LIVE_ONLY – Constante utilizada para identificar a parte ativa do efeito (parte apresentada na tela). − SCOPE_RECORD_ONLY – Constante utilizada para identificar partes dos registros de efeitos. 1 4 EffectOrderControl z z É uma interface projetada para especificar a ordem dos efeitos representados por EffectControls. Exemplo: − Int eo = getEffectOrder(EffectControl effect); − EffectControls ec[] = getEffectOrders(); − Int eo = setEffectOrder(EffectControl effect, int order); 1 5 MIDIChannelControl z z MIDIChannelControl é um controle que oferece acesso a canais de MIDI especificos, essencialmente este provê funcionalidades por canal, não por player. Exemplos: − Control c = getChannelControl(String controlType, int channel); − Control c[] = getChannelControls(int channel); 1 6 PanControl z z É uma interface que manipula o Player em uma saída estéreo. Se a entrada também for estéreo, este controla o balanço entre os canais. Configuração: No caso de fonte mono, o plano entre o canal esquerdo e direito pode ser especificado usando um valor inteiro entre -100 e 100. z Balanço: No caso de fonte estéreo o balanceamento entre o canal esquerdo e direito pode ser especificado utilizando um valor inteiro entre -100 e 100. z Métodos: − int pan = getPan(); − setPan(int pan); 1 7 PriorityControl z z z É uma interface para manipular a prioridade do Player em relação a outros Players. Métodos: − int priority = getPriority(); − setPriority(int priority); A prioridade pode variar entre 0 e 100, o valor padrão assumido é 50. 1 8 javax.microedition.amms.control.audio3d z CommitControl z DistanceAttenuationControl z LocationControl z ObstructionControl z OrientationControl 1 9 CommitControl z z Provê um mecanismo que habilita vários parâmetros de áudio para que sejam atualizados simultaneamente. Se suportado, este pode ser obtido a partir de um GlobalManager. Exemplo: CommitControl cc = (CommitControl) GlobalManager.getControl(“javax.microedition.amms.control.audio3d.CommitC ontrol”); 2 0 DistanceAttenuationControl z z É uma interface que controla a forma em que o som de uma determinada origem sofre atenuação, se existir suporte para som, este, pode ser obtido através de um SoundSource3D. Exemplo: DistanceAttenuationControl dac = (DistanceAttenuationControl) SoundSource3D.getControl(“javax.microedition.amms.control.audio3d. DistanceAttenuationControl”); 2 1 LocationControl z z LocationControl é uma interface que manipula a localização de um objeto no espaço virtual acústico. Valores Padrão: − X=0 − Y=0 − Z=0 2 2 ObstructionControl z Provê um mecanismo que controla o nível de um sinal sonoro de sua origem para o Spectator. Este provê a capacidade de filtrar (atenuar) a alta freqüência de componentes de um sinal específico. 2 3 OrientationControl z z É uma interface que manipula a orientação de um objeto no espaço virtual. Orientação é a representação da direção no espaço virtual acústico, e é definida em rotação de ângulos sobre uma coordenada. 2 4 javax.microedition.amms.control.audioeffect z AudioVirtualizerControl z ChorusControl z EqualizerControl 2 5 AudioVirtualizerControl z É um efeito para virtualizar canais de áudio. O comportamento deste efeito é dependente do número dos mesmos disponíveis no Player. No caso de um Player estéreo, este efeito é utilizado quando a alargamento de banda. 2 6 ChorusControl z z z ChorusControl é uma interface que manipula as configurações de áudio de um efeito chamado chorus, e seu caso especial flanger. Chorus é um grupo de fontes sonoras semelhantes, reproduzindo o mesmo som. Flanger é um caso especial de chorus. Duas fontes semelhantes são reproduzidas próximas uma da outra, gerando um efeito com som parecido ao de um avião a jato. 2 7 EqualizerControl z z EqualizerControl é um áudio EffectControl que manipula as configurações de equalização para um ou mais Players. Equalizadores são normalmente utilizados por duas razões. − Compensar a freqüência de resposta de um sistema para tornar o som mais natural; − Criar efeitos a partir do som. Essa interface permite a fonte sonora ser filtrada através de um equalizador. O equalizador pode ser configurado de três formas diferentes: − Utilizando pré-configuração de graves; − Utilizando pré-configurações e controles agudos; − Fixação de faixas individuais de freqüência. 2 8 javax.microedition.amms.control.camera z CameraControl z ExposureControl z FlashControl z SnapshotControl z ZoomControl 2 9 CameraControl z z CameraControl gerencia as funções do dispositivo de câmera. Quando um player iniciar a captura de stream de uma câmara, os dados são fornecidos ao CameraControl através dos métodos getControl() e getControls(). Métodos: − int getVideoResolution(); − int getCameraRotation(); z ROTATE_NONE z ROTATE_LEFT z ROTATE_RIGHT z UNKNOWN 3 0 ExposureControl z z ExposureControl controla a exposição do dispositivo de câmera. A Exposição baseia-se em três componentes: − Abertura; − Velocidade (também conhecido com exposição de tempo); − Sensibilidade; O Player fornece os streams capturados de uma câmara para o ExposureControl através dos métodos getControl() e getControls(). 3 1 FlashControl z z FlashControl controla o flash do dispositivo de câmera. O flash normalmente demora algum tempo para ser habilitado, assim quando está sendo utilizado, o tempo exato depende do dispositivo. O modo padrão para o flash é desligado. Estados: − AUTO: Flash automático de acordo com as condições de iluminação. − AUTO_WITH_REDEYEREDUCE: Flash automático de acordo com as condições de iluminação, e se necessário utilizará a redução de olhos vermelhos. − FILLIN: Flash reduzido. − FORCE: O flash da câmera é ligado. − FORCE_WITH_REDEYEREDUCE: O flash da câmera é ligado, e utiliza redução de olhos vermelhos. − OFF: O flash da câmera é desligado. 3 2 SnapshotControl z z SnapshotControl Com esse controle é possível filmar várias imagens, e armazena-las no sistema de arquivos. Estas podem ser adicionadas no diretório a partir do método setDirectory(), que deve gravar a imagem no diretório que está sendo indicado como ativo. O diretório ativo pode ser consultado através do método getDirectory(). 3 3 ZoomControl z z ZoomControl controla a aproximação, do dispositivo de câmera digital. Controles: − NEXT: Move as configurações para o próximo nível. − PREVIOUS: Move as configurações para o nível anterior. − UNKNOWN Valor desconhecido. 3 4 javax.microedition.amms.control.imageeffect z ImageEffectControl z ImageTonalityControl z ImageTransformControl z OverlayControl z WhiteBalanceControl 3 5 ImageEffectControl z z É um filtro que define efeitos para imagens. Por exemplo imagens monocromáticas e negativos. Exemplo: − setPresent(“monochrome ”); − setPresent(“negative”); 3 6 ImageTonalityControl z ImageTonalityControl é um efeito que pode ser usado para definir configurações de imagem: − z z Brilho, Contraste, Gama. As configurações podem ser definidas da seguinte forma: − Valor absoluto entre 0 e 100; − Configuração relativa (PREVIOUS ou NEXT); − Nível Automático (AUTO). Métodos: − setBrightness(int level); − setContrast(int level); − setGamma(int level); 3 7 ImageTransformControl z ImageTransformControl é usada para cortar, esticar e rodar imagens. Exemplo: String cn = “javax.microedition.amms.imageeffect.ImageTransformControl”; ImageTransformControl tc = myMediaProcessor.getControl(cn); int origWidth = tc.getSourceWidth(); int origHeight = tc.getSourceHeight(); tc.setSourceRect(0, 0, origWidth, -origHeight); tc.setTargetSize(0, 0, 0); 3 8 ImageTransformControl 3 9 OverlayControl z OverlayControl controla a sobreposição de imagens em cima de vídeo ou imagem estática. Isso pode ser útil ao adicionar quadros para uma fotografia. − Imagens referenciadas como objetos (apoiar diferentes tecnologias). − Imagens podem ser adicionadas parcialmente ou totalmente fora do vídeo. 4 0 WhiteBalanceControl z z WhiteBalanceControl manipula o equilíbrio de cores brancas em imagens e vídeo. Estes padrões podem ser apoiados por: − sunlight (luz normal do dia); − tungsten (Filamentos de iluminação comumente utilizado em lâmpadas); − fluorescent; − flash (Equilíbrio ideal de branco para o modo flash integrado do dispositivo). 4 1 javax.microedition.amms.control.tuner z RDSControl z TunerControl 4 2 RDSControl z RDSControl é uma interface para acessar o sistema de dados de rádio para VHF / FM radiodifusão sonora (RDS). As configurações de um player RDSControl podem também ser utilizadas com Broadcast Radio Data System (RBDS). 4 3 TunerControl z z TunerControl é uma interface para controlar o sintonizador de configurações de um Player. Estados: − AUTO – Modo estéreo automático. − MODULATION_AM – Modulação AM. − MODULATION_FM – Modulação FM. − MONO – Mono. − STEREO – Estéreo. 4 4