Referencia de ActionScript® 3.0 para la plataforma de Adobe® Flash®
Inicio  |  Ocultar lista de paquetes y clases |  Paquetes  |  Clases  |  Novedades  |  Índice  |  Apéndices  |  ¿Por qué hay texto en inglés?
Filtros: AIR 30.0 y versiones anteriores, Flash Player 30.0 y versiones anteriores, Flash Lite 4
Flex 4.6 y versiones anteriores, Flash Pro CS6 y versiones anteriores
Ocultar filtros
flash.media 

Sound  - AS3

Paquetesx

Nivel superior
adobe.utils
air.desktop
air.net
air.update
air.update.events
coldfusion.air
coldfusion.air.errors
coldfusion.air.events
coldfusion.service
coldfusion.service.events
coldfusion.service.mxml
com.adobe.acm.solutions.authoring.domain.extensions
com.adobe.acm.solutions.ccr.domain.extensions
com.adobe.consulting.pst.vo
com.adobe.dct.component
com.adobe.dct.component.datadictionary
com.adobe.dct.component.datadictionaryElement
com.adobe.dct.component.dataElementsPanel
com.adobe.dct.component.toolbars
com.adobe.dct.event
com.adobe.dct.exp
com.adobe.dct.model
com.adobe.dct.service
com.adobe.dct.service.provider
com.adobe.dct.transfer
com.adobe.dct.util
com.adobe.dct.view
com.adobe.ep.taskmanagement.domain
com.adobe.ep.taskmanagement.event
com.adobe.ep.taskmanagement.filter
com.adobe.ep.taskmanagement.services
com.adobe.ep.taskmanagement.util
com.adobe.ep.ux.attachmentlist.component
com.adobe.ep.ux.attachmentlist.domain
com.adobe.ep.ux.attachmentlist.domain.events
com.adobe.ep.ux.attachmentlist.domain.renderers
com.adobe.ep.ux.attachmentlist.skin
com.adobe.ep.ux.attachmentlist.skin.renderers
com.adobe.ep.ux.content.event
com.adobe.ep.ux.content.factory
com.adobe.ep.ux.content.handlers
com.adobe.ep.ux.content.managers
com.adobe.ep.ux.content.model.asset
com.adobe.ep.ux.content.model.preview
com.adobe.ep.ux.content.model.relation
com.adobe.ep.ux.content.model.search
com.adobe.ep.ux.content.model.toolbar
com.adobe.ep.ux.content.search
com.adobe.ep.ux.content.services
com.adobe.ep.ux.content.services.load
com.adobe.ep.ux.content.services.permissions
com.adobe.ep.ux.content.services.preview
com.adobe.ep.ux.content.services.providers
com.adobe.ep.ux.content.services.query
com.adobe.ep.ux.content.services.relationships
com.adobe.ep.ux.content.services.search.lccontent
com.adobe.ep.ux.content.services.version
com.adobe.ep.ux.content.view
com.adobe.ep.ux.content.view.components.activate
com.adobe.ep.ux.content.view.components.grid
com.adobe.ep.ux.content.view.components.grid.hover
com.adobe.ep.ux.content.view.components.grid.hover.component
com.adobe.ep.ux.content.view.components.grid.renderers
com.adobe.ep.ux.content.view.components.relationships
com.adobe.ep.ux.content.view.components.review
com.adobe.ep.ux.content.view.components.search.renderers
com.adobe.ep.ux.content.view.components.searchpod
com.adobe.ep.ux.content.view.components.toolbar
com.adobe.ep.ux.content.view.components.toolbar.controlRenderers
com.adobe.ep.ux.content.view.components.version
com.adobe.ep.ux.documentsubmit.component
com.adobe.ep.ux.documentsubmit.domain
com.adobe.ep.ux.documentsubmit.skin
com.adobe.ep.ux.taskaction.component
com.adobe.ep.ux.taskaction.domain
com.adobe.ep.ux.taskaction.domain.events
com.adobe.ep.ux.taskaction.skin
com.adobe.ep.ux.taskdetails.component
com.adobe.ep.ux.taskdetails.domain
com.adobe.ep.ux.taskdetails.skin
com.adobe.ep.ux.tasklist.component
com.adobe.ep.ux.tasklist.domain
com.adobe.ep.ux.tasklist.skin
com.adobe.ep.ux.webdocumentviewer.domain
com.adobe.exm.expression
com.adobe.exm.expression.error
com.adobe.exm.expression.event
com.adobe.exm.expression.impl
com.adobe.fiber.runtime.lib
com.adobe.fiber.services
com.adobe.fiber.services.wrapper
com.adobe.fiber.styles
com.adobe.fiber.util
com.adobe.fiber.valueobjects
com.adobe.gravity.binding
com.adobe.gravity.context
com.adobe.gravity.flex.bundleloader
com.adobe.gravity.flex.progress
com.adobe.gravity.flex.serviceloader
com.adobe.gravity.framework
com.adobe.gravity.init
com.adobe.gravity.service.bundleloader
com.adobe.gravity.service.logging
com.adobe.gravity.service.manifest
com.adobe.gravity.service.progress
com.adobe.gravity.tracker
com.adobe.gravity.ui
com.adobe.gravity.utility
com.adobe.gravity.utility.async
com.adobe.gravity.utility.error
com.adobe.gravity.utility.events
com.adobe.gravity.utility.factory
com.adobe.gravity.utility.flex.async
com.adobe.gravity.utility.logging
com.adobe.gravity.utility.message
com.adobe.gravity.utility.sequence
com.adobe.gravity.utility.url
com.adobe.guides.control
com.adobe.guides.domain
com.adobe.guides.i18n
com.adobe.guides.spark.components.skins
com.adobe.guides.spark.components.skins.mx
com.adobe.guides.spark.headers.components
com.adobe.guides.spark.headers.skins
com.adobe.guides.spark.layouts.components
com.adobe.guides.spark.layouts.skins
com.adobe.guides.spark.navigators.components
com.adobe.guides.spark.navigators.renderers
com.adobe.guides.spark.navigators.skins
com.adobe.guides.spark.util
com.adobe.guides.spark.wrappers.components
com.adobe.guides.spark.wrappers.skins
com.adobe.guides.submit
com.adobe.icc.dc.domain
com.adobe.icc.dc.domain.factory
com.adobe.icc.editors.events
com.adobe.icc.editors.handlers
com.adobe.icc.editors.managers
com.adobe.icc.editors.model
com.adobe.icc.editors.model.config
com.adobe.icc.editors.model.el
com.adobe.icc.editors.model.el.operands
com.adobe.icc.editors.model.el.operators
com.adobe.icc.enum
com.adobe.icc.external.dc
com.adobe.icc.obj
com.adobe.icc.services
com.adobe.icc.services.category
com.adobe.icc.services.config
com.adobe.icc.services.download
com.adobe.icc.services.export
com.adobe.icc.services.external
com.adobe.icc.services.formbridge
com.adobe.icc.services.fragmentlayout
com.adobe.icc.services.layout
com.adobe.icc.services.letter
com.adobe.icc.services.locator
com.adobe.icc.services.module
com.adobe.icc.services.render
com.adobe.icc.services.submit
com.adobe.icc.services.user
com.adobe.icc.token
com.adobe.icc.vo
com.adobe.icc.vo.render
com.adobe.icomm.assetplacement.controller
com.adobe.icomm.assetplacement.controller.utils
com.adobe.icomm.assetplacement.data
com.adobe.icomm.assetplacement.model
com.adobe.livecycle.assetmanager.client
com.adobe.livecycle.assetmanager.client.event
com.adobe.livecycle.assetmanager.client.handler
com.adobe.livecycle.assetmanager.client.managers
com.adobe.livecycle.assetmanager.client.model
com.adobe.livecycle.assetmanager.client.model.cms
com.adobe.livecycle.assetmanager.client.service
com.adobe.livecycle.assetmanager.client.service.search
com.adobe.livecycle.assetmanager.client.service.search.cms
com.adobe.livecycle.assetmanager.client.utils
com.adobe.livecycle.content
com.adobe.livecycle.rca.model
com.adobe.livecycle.rca.model.constant
com.adobe.livecycle.rca.model.document
com.adobe.livecycle.rca.model.participant
com.adobe.livecycle.rca.model.reminder
com.adobe.livecycle.rca.model.stage
com.adobe.livecycle.rca.service
com.adobe.livecycle.rca.service.core
com.adobe.livecycle.rca.service.core.delegate
com.adobe.livecycle.rca.service.process
com.adobe.livecycle.rca.service.process.delegate
com.adobe.livecycle.rca.token
com.adobe.livecycle.ria.security.api
com.adobe.livecycle.ria.security.service
com.adobe.mosaic.layouts
com.adobe.mosaic.layouts.dragAndDrop
com.adobe.mosaic.layouts.interfaces
com.adobe.mosaic.mxml
com.adobe.mosaic.om.constants
com.adobe.mosaic.om.events
com.adobe.mosaic.om.impl
com.adobe.mosaic.om.interfaces
com.adobe.mosaic.skinning
com.adobe.mosaic.sparklib.editors
com.adobe.mosaic.sparklib.optionMenu
com.adobe.mosaic.sparklib.scrollableMenu
com.adobe.mosaic.sparklib.scrollableMenu.skins
com.adobe.mosaic.sparklib.tabLayout
com.adobe.mosaic.sparklib.tabLayout.events
com.adobe.mosaic.sparklib.tabLayout.layouts
com.adobe.mosaic.sparklib.tabLayout.skins
com.adobe.mosaic.sparklib.text
com.adobe.mosaic.sparklib.util
com.adobe.solutions.acm.authoring.presentation
com.adobe.solutions.acm.authoring.presentation.actionbar
com.adobe.solutions.acm.authoring.presentation.common
com.adobe.solutions.acm.authoring.presentation.events
com.adobe.solutions.acm.authoring.presentation.fragment
com.adobe.solutions.acm.authoring.presentation.letter
com.adobe.solutions.acm.authoring.presentation.letter.data
com.adobe.solutions.acm.authoring.presentation.preview
com.adobe.solutions.acm.authoring.presentation.rte
com.adobe.solutions.acm.ccr.presentation
com.adobe.solutions.acm.ccr.presentation.contentcapture
com.adobe.solutions.acm.ccr.presentation.contentcapture.events
com.adobe.solutions.acm.ccr.presentation.contentcapture.preview
com.adobe.solutions.acm.ccr.presentation.datacapture
com.adobe.solutions.acm.ccr.presentation.datacapture.renderers
com.adobe.solutions.acm.ccr.presentation.pdf
com.adobe.solutions.exm
com.adobe.solutions.exm.authoring
com.adobe.solutions.exm.authoring.components.controls
com.adobe.solutions.exm.authoring.components.toolbars
com.adobe.solutions.exm.authoring.domain
com.adobe.solutions.exm.authoring.domain.expression
com.adobe.solutions.exm.authoring.domain.impl
com.adobe.solutions.exm.authoring.domain.method
com.adobe.solutions.exm.authoring.domain.variable
com.adobe.solutions.exm.authoring.enum
com.adobe.solutions.exm.authoring.events
com.adobe.solutions.exm.authoring.model
com.adobe.solutions.exm.authoring.renderer
com.adobe.solutions.exm.authoring.view
com.adobe.solutions.exm.expression
com.adobe.solutions.exm.impl
com.adobe.solutions.exm.impl.method
com.adobe.solutions.exm.method
com.adobe.solutions.exm.mock
com.adobe.solutions.exm.mock.method
com.adobe.solutions.exm.runtime
com.adobe.solutions.exm.runtime.impl
com.adobe.solutions.exm.variable
com.adobe.solutions.prm.constant
com.adobe.solutions.prm.domain
com.adobe.solutions.prm.domain.factory
com.adobe.solutions.prm.domain.impl
com.adobe.solutions.prm.domain.manager
com.adobe.solutions.prm.presentation.asset
com.adobe.solutions.prm.presentation.constant
com.adobe.solutions.prm.presentation.document
com.adobe.solutions.prm.presentation.event
com.adobe.solutions.prm.presentation.file
com.adobe.solutions.prm.presentation.project
com.adobe.solutions.prm.presentation.team
com.adobe.solutions.prm.presentation.util
com.adobe.solutions.prm.service
com.adobe.solutions.prm.services.impl
com.adobe.solutions.prm.vo
com.adobe.solutions.rca.constant
com.adobe.solutions.rca.domain
com.adobe.solutions.rca.domain.common
com.adobe.solutions.rca.domain.factory
com.adobe.solutions.rca.domain.impl
com.adobe.solutions.rca.domain.impl.manager
com.adobe.solutions.rca.domain.manager
com.adobe.solutions.rca.presentation
com.adobe.solutions.rca.presentation.comment
com.adobe.solutions.rca.presentation.constant
com.adobe.solutions.rca.presentation.event
com.adobe.solutions.rca.presentation.gantt
com.adobe.solutions.rca.presentation.gantt.ruler
com.adobe.solutions.rca.presentation.template
com.adobe.solutions.rca.presentation.template.audit
com.adobe.solutions.rca.presentation.template.definition
com.adobe.solutions.rca.presentation.template.documents
com.adobe.solutions.rca.presentation.template.stages
com.adobe.solutions.rca.presentation.util
com.adobe.solutions.rca.service
com.adobe.solutions.rca.services.impl
com.adobe.solutions.rca.vo
com.adobe.solutions.rca.vo.um
com.adobe.viewsource
fl.accessibility
fl.containers
fl.controls
fl.controls.dataGridClasses
fl.controls.listClasses
fl.controls.progressBarClasses
fl.core
fl.data
fl.display
fl.events
fl.ik
fl.lang
fl.livepreview
fl.managers
fl.motion
fl.motion.easing
fl.rsl
fl.text
fl.transitions
fl.transitions.easing
fl.video
flash.accessibility
flash.concurrent
flash.crypto
flash.data
flash.desktop
flash.display
flash.display3D
flash.display3D.textures
flash.errors
flash.events
flash.external
flash.filesystem
flash.filters
flash.geom
flash.globalization
flash.html
flash.media
flash.net
flash.net.dns
flash.net.drm
flash.notifications
flash.permissions
flash.printing
flash.profiler
flash.sampler
flash.security
flash.sensors
flash.system
flash.text
flash.text.engine
flash.text.ime
flash.ui
flash.utils
flash.xml
flashx.textLayout
flashx.textLayout.compose
flashx.textLayout.container
flashx.textLayout.conversion
flashx.textLayout.edit
flashx.textLayout.elements
flashx.textLayout.events
flashx.textLayout.factory
flashx.textLayout.formats
flashx.textLayout.operations
flashx.textLayout.utils
flashx.undo
ga.controls
ga.layouts
ga.model
ga.uiComponents
ga.util
ga.views
ga.wrappers
lc.foundation
lc.foundation.domain
lc.foundation.events
lc.foundation.ui
lc.foundation.util
lc.preloader
lc.procmgmt
lc.procmgmt.commands
lc.procmgmt.domain
lc.procmgmt.events
lc.procmgmt.formbridge
lc.procmgmt.impl
lc.procmgmt.ui.attachments
lc.procmgmt.ui.controls
lc.procmgmt.ui.controls.card
lc.procmgmt.ui.controls.renderer
lc.procmgmt.ui.help
lc.procmgmt.ui.layout
lc.procmgmt.ui.presentationmodel
lc.procmgmt.ui.process
lc.procmgmt.ui.search
lc.procmgmt.ui.startpoint
lc.procmgmt.ui.task
lc.procmgmt.ui.task.form
lc.procmgmt.ui.task.form.commands
lc.procmgmt.ui.tracking
mx.accessibility
mx.automation
mx.automation.air
mx.automation.delegates
mx.automation.delegates.advancedDataGrid
mx.automation.delegates.charts
mx.automation.delegates.containers
mx.automation.delegates.controls
mx.automation.delegates.controls.dataGridClasses
mx.automation.delegates.controls.fileSystemClasses
mx.automation.delegates.core
mx.automation.delegates.flashflexkit
mx.automation.events
mx.binding
mx.binding.utils
mx.charts
mx.charts.chartClasses
mx.charts.effects
mx.charts.effects.effectClasses
mx.charts.events
mx.charts.renderers
mx.charts.series
mx.charts.series.items
mx.charts.series.renderData
mx.charts.styles
mx.collections
mx.collections.errors
mx.containers
mx.containers.accordionClasses
mx.containers.dividedBoxClasses
mx.containers.errors
mx.containers.utilityClasses
mx.controls
mx.controls.advancedDataGridClasses
mx.controls.dataGridClasses
mx.controls.listClasses
mx.controls.menuClasses
mx.controls.olapDataGridClasses
mx.controls.scrollClasses
mx.controls.sliderClasses
mx.controls.textClasses
mx.controls.treeClasses
mx.controls.videoClasses
mx.core
mx.core.windowClasses
mx.data
mx.data.crypto
mx.data.errors
mx.data.events
mx.data.messages
mx.data.mxml
mx.data.offline.errors
mx.data.utils
mx.effects
mx.effects.easing
mx.effects.effectClasses
mx.events
mx.filters
mx.flash
mx.formatters
mx.geom
mx.graphics
mx.graphics.codec
mx.graphics.shaderClasses
mx.logging
mx.logging.errors
mx.logging.targets
mx.managers
mx.messaging
mx.messaging.channels
mx.messaging.config
mx.messaging.errors
mx.messaging.events
mx.messaging.management
mx.messaging.messages
mx.modules
mx.netmon
mx.olap
mx.olap.aggregators
mx.preloaders
mx.printing
mx.resources
mx.rpc
mx.rpc.events
mx.rpc.http
mx.rpc.http.mxml
mx.rpc.livecycle
mx.rpc.mxml
mx.rpc.remoting
mx.rpc.remoting.mxml
mx.rpc.soap
mx.rpc.soap.mxml
mx.rpc.wsdl
mx.rpc.xml
mx.skins
mx.skins.halo
mx.skins.spark
mx.skins.wireframe
mx.skins.wireframe.windowChrome
mx.states
mx.styles
mx.utils
mx.validators
org.osmf.containers
org.osmf.display
org.osmf.elements
org.osmf.events
org.osmf.layout
org.osmf.logging
org.osmf.media
org.osmf.metadata
org.osmf.net
org.osmf.net.dvr
org.osmf.net.httpstreaming
org.osmf.net.metrics
org.osmf.net.qos
org.osmf.net.rtmpstreaming
org.osmf.net.rules
org.osmf.traits
org.osmf.utils
spark.accessibility
spark.automation.delegates
spark.automation.delegates.components
spark.automation.delegates.components.gridClasses
spark.automation.delegates.components.mediaClasses
spark.automation.delegates.components.supportClasses
spark.automation.delegates.skins.spark
spark.automation.events
spark.collections
spark.components
spark.components.calendarClasses
spark.components.gridClasses
spark.components.mediaClasses
spark.components.supportClasses
spark.components.windowClasses
spark.core
spark.effects
spark.effects.animation
spark.effects.easing
spark.effects.interpolation
spark.effects.supportClasses
spark.events
spark.filters
spark.formatters
spark.formatters.supportClasses
spark.globalization
spark.globalization.supportClasses
spark.layouts
spark.layouts.supportClasses
spark.managers
spark.modules
spark.preloaders
spark.primitives
spark.primitives.supportClasses
spark.skins
spark.skins.mobile
spark.skins.mobile.supportClasses
spark.skins.spark
spark.skins.spark.mediaClasses.fullScreen
spark.skins.spark.mediaClasses.normal
spark.skins.spark.windowChrome
spark.skins.wireframe
spark.skins.wireframe.mediaClasses
spark.skins.wireframe.mediaClasses.fullScreen
spark.transitions
spark.utils
spark.validators
spark.validators.supportClasses
xd.core.axm.enterprise.view.components
xd.core.axm.enterprise.view.skins
xd.core.axm.view.components
xd.core.axm.view.components.support

Elementos del lenguaje

Constantes globales
Funciones globales
Operadores
Sentencias, palabras clave y directivas
Tipos especiales

Apéndices

Novedades
Errores del compilador
Advertencias del compilador
Errores en tiempo de ejecución
Migración a ActionScript 3
Conjuntos de caracteres admitidos
Solo etiquetas MXML
Elementos Motion XML
Etiquetas de texto temporizado
Lista de elementos desfasados
Constantes de implementación de accesibilidad
Cómo utilizar ejemplos de ActionScript
Avisos legales
Paqueteflash.media
Clasepublic class Sound
HerenciaSound Inheritance EventDispatcher Inheritance Object
Subclases SoundAsset

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

La clase Sound permite trabajar con sonido en una aplicación. La clase Sound permite crear un objeto Sound, cargar y reproducir un archivo MP3 externo en el objeto, cerrar el flujo de sonido y acceder a datos de sonido como, por ejemplo, información sobre el número de bytes del flujo y los metadatos ID3. Se puede conseguir un mayor control del sonido mediante la fuente de sonido (los objetos SoundChannel o Microphone del sonido) y a través de las propiedades de la clase SoundTransform que controlan la salida del sonido en los altavoces del equipo.

En Flash Player 1.5 y versiones posteriores, y en AIR 1.5 y versiones posteriores, también se puede utilizar esta clase para trabajar con sonido generado de forma dinámica. En este caso, el objeto Sound utilizará la función asignada a un controlador de eventos sampleData para buscar datos de sonido. El sonido se reproducirá conforme se recupere de un objeto ByteArray llenado con datos de sonido. Puede utilizar Sound.extract() para extraer datos de sonido de un objeto Sound. A continuación, puede manipularlo antes de volver a escribirlo en el flujo para la reproducción.

Para controlar sonidos incorporados en un archivo SWF, utilice las propiedades de la clase SoundMixer.

Nota: la API Sound de ActionScript 3.0 es distinta de la de ActionScript 2.0. Con ActionScript 3.0, no es posible tomar objetos de sonido y organizarlos jerárquicamente para controlar sus propiedades.

Cuando utilice esta clase, puede ser conveniente usar el siguiente modelo de seguridad:

  • No se admite la carga ni la reproducción de un sonido si el archivo que realiza la llamada se encuentra en el entorno limitado de red y el archivo de sonido que debe cargarse está en un sistema local.
  • De forma predeterminada, no está permitido cargar y reproducir un sonido si el archivo que realiza la llamada es local e intenta cargar y reproducir sonido remoto. El usuario debe proporcionar permiso de forma explícita para permitir este tipo de acceso.
  • Están restringidas ciertas operaciones relacionadas con sonidos. Un archivo de un dominio distinto no puede acceder a los datos de un sonido cargado a no ser que implemente un archivo de política ente dominios. Las API relacionadas con sonidos a las que afecta esta restricción son Sound.id3, SoundMixer.computeSpectrum(), SoundMixer.bufferTime y la case SoundTransform.

Sin embargo, en Adobe AIR, el contenido del entorno limitado de seguridad de la aplicación (contenido instalado con la aplicación de AIR) no está limitado por estas restricciones de seguridad.

Para obtener más información, consulte el tema del Centro de desarrollo de Flash Player Seguridad.

Ver los ejemplos

Elementos de API relacionados



Propiedades públicas
 PropiedadDefinido por
  bytesLoaded : uint
[solo lectura] Devuelve el número actual de bytes disponibles en el objeto de sonido.
Sound
  bytesTotal : int
[solo lectura] Devuelve el número total de bytes de este objeto de sonido.
Sound
 Inheritedconstructor : Object
Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada.
Object
  id3 : ID3Info
[solo lectura] Proporciona acceso a los metadatos que forman parte de un archivo MP3.
Sound
  isBuffering : Boolean
[solo lectura] Devuelve el estado del búfer de archivos MP3 externos.
Sound
  isURLInaccessible : Boolean
[solo lectura] Indica si se ha truncado la propiedad Sound.url.
Sound
  length : Number
[solo lectura] Longitud del sonido actual, expresada en milisegundos.
Sound
  url : String
[solo lectura] La URL desde la que se cargó el sonido.
Sound
Métodos públicos
 MétodoDefinido por
  
Sound(stream:URLRequest = null, context:SoundLoaderContext = null)
Crea un objeto Sound nuevo.
Sound
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registra un objeto de detector de eventos con un objeto EventDispatcher, de modo que el detector reciba la notificación de un evento.
EventDispatcher
  
Cierra el flujo y provoca la detención de cualquier descarga de datos.
Sound
 Inherited
Distribuye un evento en el flujo del evento.
EventDispatcher
  
extract(target:ByteArray, length:Number, startPosition:Number = -1):Number
Extrae datos de sonido sin procesar de un objeto Sound.
Sound
 Inherited
Comprueba si el objeto EventDispatcher tiene detectores registrados para un tipo concreto de evento.
EventDispatcher
 Inherited
Indica si un objeto tiene definida una propiedad especificada.
Object
 Inherited
Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro.
Object
  
load(stream:URLRequest, context:SoundLoaderContext = null):void
Inicia la carga de un archivo MP3 externo desde la URL especificada.
Sound
  
carga datos de sonido MP3 de un objeto ByteArray en un objeto Sound.
Sound
  
loadPCMFromByteArray(bytes:ByteArray, samples:uint, format:String = "float", stereo:Boolean = true, sampleRate:Number = 44100.0):void
Carga datos de sonido de coma flotante PCM de 32 bits de un objeto ByteArray en un objeto Sound.
Sound
  
play(startTime:Number = 0, loops:int = 0, sndTransform:flash.media:SoundTransform = null):SoundChannel
Genera un nuevo objeto SoundChannel para reproducir el sonido.
Sound
 Inherited
Indica si existe la propiedad especificada y si es enumerable.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Elimina un detector del objeto EventDispatcher.
EventDispatcher
 Inherited
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle.
Object
 Inherited
Devuelve la representación de cadena de este objeto, con formato según las convenciones específicas de configuración regional.
Object
 Inherited
Devuelve la representación de cadena del objeto especificado.
Object
 Inherited
Devuelve el valor simple del objeto especificado.
Object
 Inherited
Comprueba si hay registrado un detector de eventos con este objeto EventDispatcher o con cualquiera de sus ascendientes para el tipo de evento concreto.
EventDispatcher
Eventos
 Evento Resumen Definido por
 Inherited[evento broadcast] Se distribuye cuando Flash Player o AIR pasan a estar activos.EventDispatcher
  Se distribuye cuando los datos se han cargado correctamente.Sound
 Inherited[evento broadcast] Se distribuye cuando Flash Player o de AIR pasan a estar inactivos.EventDispatcher
  Distribuido por un objeto Sound cuando hay datos ID3 disponibles para un sonido MP3.Sound
  Se distribuye cuando se produce un error de entrada o salida que provoca que una operación de carga se realice incorrectamente.Sound
  Se distribuye cuando se inicia la operación de carga.Sound
  Se distribuye al recibirse datos mientras progresa una operación de carga.Sound
  Se distribuye cuando el motor de ejecución solicita nuevos datos de audio.Sound
Información sobre propiedades

bytesLoaded

propiedad
bytesLoaded:uint  [solo lectura]

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Devuelve el número actual de bytes disponibles en el objeto de sonido. Esta propiedad suele ser útil únicamente en archivos cargados externamente.



Implementación
    public function get bytesLoaded():uint

bytesTotal

propiedad 
bytesTotal:int  [solo lectura]

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Devuelve el número total de bytes de este objeto de sonido.



Implementación
    public function get bytesTotal():int

id3

propiedad 
id3:ID3Info  [solo lectura]

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Proporciona acceso a los metadatos que forman parte de un archivo MP3.

Los archivos de sonido MP3 pueden contener etiquetas ID3 que proporcionan metadatos sobre el archivo. Si un sonido MP3 que se carga con el método Sound.load() contiene etiquetas ID3, puede consultar estas propiedades. Sólo se admiten las etiquetas ID3 que utilizan el conjunto de caracteres UTF-8.

En Flash Player 9 y versiones posteriores y en AIR se admiten etiquetas ID3 2.0, concretamente las versiones 2.3 y 2.4. En las tablas siguientes se muestran las etiquetas ID3 2.0 estándar y el tipo de contenido que representan. La propiedad Sound.id3 proporciona acceso a estas etiquetas mediante el formato my_sound.id3.COMM, my_sound.id3.TIME, etc. La primera tabla describe etiquetas a las que se puede acceder desde el nombre de propiedad de ID3 2.0 o desde el nombre de propiedad de ActionScript. La segunda tabla describe etiquetas ID3 admitidas, pero que no tienen propiedades predefinidas en ActionScript.

Etiqueta ID3 2.0Propiedad correspondiente de la clase Sound
COMMSound.id3.comment
TALBSound.id3.album
TCONSound.id3.genre
TIT2Sound.id3.songName
TPE1Sound.id3.artist
TRCKSound.id3.track
TYERSound.id3.year

En la siguiente tabla se describen las etiquetas ID3 admitidas, pero que no tienen propiedades predefinidas la clase Sound. Se puede acceder a ellas llamando a mySound.id3.TFLT, mySound.id3.TIME, etc. NOTA: ninguna de estas etiquetas se admite en Flash Lite 4.

PropiedadDescription
TFLTTipo de archivo
TIMEHora
TIT1Descripción de grupo de contenido
TIT2Título/nombre de canción/descripción del contenido
TIT3Subtítulo/descripción adicional
TKEYClave inicial
TLANIdiomas
TLENDuración
TMEDTipo de medio
TOALÁlbum/película/título de espectáculo original
TOFNNombre de archivo original
TOLYLetrista/escritor original
TOPEArtistas/intérpretes originales
TORYAño de publicación original
TOWNPropietario/licenciatario del archivo
TPE1Intérpretes/solistas principales
TPE2Grupo/orquesta/acompañamiento
TPE3Director/intérprete adicional
TPE4Interpretado, remezclado o editado por
TPOSParte de un conjunto
TPUBPublisher
TRCKNúmero de pista/posición en el conjunto
TRDAFechas de grabación
TRSNNombre de emisora de Internet
TRSOPropietario de emisora de Internet
TSIZTamaño
TSRCISRC (código de grabación estándar internacional)
TSSESoftware/hardware y configuración empleados para la codificación
TYERAño
WXXXFotograma de vínculo de URL

Cuando utilice esta propiedad, tenga en cuenta el modelo de seguridad de Flash Player:

  • La propiedad id3 de un objeto Sound siempre está permitida para archivos SWF que se encuentren en el mismo entorno limitado de seguridad que el archivo de sonido. Para los archivos de otros entornos limitados existen comprobaciones de seguridad.
  • Al cargar el sonido con el método load() de la clase Sound, puede especificar un parámetro context, que es un objeto SoundLoaderContext. Si establece la propiedad checkPolicyFile del objeto SoundLoaderContext como true, Flash Player comprobará la existencia de un archivo de política URL en el servidor desde el que se carga el sonido. Si existe un archivo de política y éste permite acceder desde el dominio del archivo SWF que se carga, el archivo podrá acceder a la propiedad id3 del objeto Sound; en caso contrario, no será posible.

Sin embargo, en Adobe AIR, el contenido del entorno limitado de seguridad de la aplicación (contenido instalado con la aplicación de AIR) no está limitado por estas restricciones de seguridad.

Para obtener más información, consulte el tema del Centro de desarrollo de Flash Player Seguridad.



Implementación
    public function get id3():ID3Info

Elementos de API relacionados


Ejemplo  ( Cómo utilizar este ejemplo )
El ejemplo siguiente lee la información de ID3 de un archivo de sonido y lo muestra en un campo de texto.

En el constructor, se carga el archivo de sonido pero no se establece su reproducción. En este caso, se asume que el archivo se encuentra en el directorio de SWF. El sistema debe tener permiso para leer las etiquetas ID3 de un archivo de sonido cargado. Si hay información de ID3 en el archivo y se permite al programa leerla, se activará un evento Event.ID3 y se rellenará la propiedad id3 del archivo de sonido. La propiedad id3 contiene un objeto ID3Info con toda la información de ID3.

En el método id3Handler(), las etiquetas ID3 del archivo se almacenan en id3, un objeto de la clase ID3Info. Se crea una instancia del campo de texto para mostrar la lista de las etiquetas ID3. El bucle for itera por todas las etiquetas ID3 2.0 y agrega el nombre y el valor al contenido del campo de texto. Si utiliza las propiedades de información de ID3 (ID3Info), también se agrega el artista, el nombre de la canción y el álbum. ActionScript 3.0 y Flash Player 9 y versiones posteriores son compatibles con las etiquetas ID3 2.0, concretamente 2.3 y 2.4. Si itera por las propiedades del bucle for, sólo aparecerán las etiquetas ID3 2.0. Sin embargo, los datos de versiones anteriores también se almacenan en la propiedad id3 de la canción y se puede acceder a ésta mediante las propiedades de clase de información de ID3. Las etiquetas para ID3 1.0 se encuentran al final del archivo mientras que las etiquetas ID3 2.0 están al principio. (A veces, los archivos pueden tener tanto etiquetas de versiones anteriores como posteriores en el mismo lugar.) Si un archivo se codifica con las dos versiones de etiquetas 1.0 y 2.0 al principio y al final del archivo, el método id3Handler() se invocará dos veces. Primero lee la versión 2.0 y luego la versión 1.0. Si sólo está disponible la etiqueta ID3 1.0, la información es accesible a través de las propiedades de información de ID3, como id3.songname. Para ID3 2.0, la propiedad id3.TITS recuperará el nombre de la canción mediante la nueva etiqueta (TITS).

Tenga en cuenta que no se escribe ninguna gestión de errores para este ejemplo y si el contenido de ID3 es largo, puede que el resultado no se vea por completo en el área de visualización.

package {
    import flash.display.Sprite;
    import flash.media.Sound;
    import flash.net.URLRequest;
    import flash.media.ID3Info;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.events.Event;

    public class Sound_id3Example extends Sprite {
        private var snd:Sound = new Sound();       
        private var myTextField:TextField = new TextField();

        public function Sound_id3Example() {
            snd.addEventListener(Event.ID3, id3Handler);
            snd.load(new URLRequest("mySound.mp3"));
        }
    
        private function id3Handler(event:Event):void {
            var id3:ID3Info = snd.id3;

            myTextField.autoSize = TextFieldAutoSize.LEFT;
            myTextField.border = true;

            myTextField.appendText("Received ID3 Info: \n");
              
            for (var propName:String in id3) {
                myTextField.appendText(propName + " = " + id3[propName] + "\n");
            }
 
            myTextField.appendText("\n" + "Artist: " + id3.artist + "\n");
            myTextField.appendText("Song name: " + id3.songName + "\n");
            myTextField.appendText("Album: " + id3.album + "\n\n"); 
 
            this.addChild(myTextField);
        }
    }
}

isBuffering

propiedad 
isBuffering:Boolean  [solo lectura]

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Devuelve el estado del búfer de archivos MP3 externos. Si el valor es true, se suspenderá cualquier reproducción activa mientras el objeto espera más datos.



Implementación
    public function get isBuffering():Boolean

isURLInaccessible

propiedad 
isURLInaccessible:Boolean  [solo lectura]

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: Flash Player 10.1, AIR 2

Indica si se ha truncado la propiedad Sound.url. Cuando el valor de isURLInaccessible es true, el valor de Sound.url es sólo el dominio de la URL final desde la que se cargó el sonido. Por ejemplo, la propiedad se trunca si el sonido se carga desde http://www.adobe.com/assets/hello.mp3, y la propiedad Sound.url tiene el valor http://www.adobe.com. El valor de isURLInaccessible es true sólo cuando todos los siguientes también son true:

  • Se ha producido una redirección HTTP mientras se cargaba el archivo de sonido.
  • El archivo SWF que llama a Sound.load() procede de un dominio distinto que la URL final del archivo de sonido.
  • El archivo SWF que llama a Sound.load() no tiene permiso para acceder al archivo de sonido. Se concede permiso para acceder al archivo de sonido del mismo modo que se concede permiso para la propiedad Sound.id3: estableciendo un archivo de política y utilizando la propiedad SoundLoaderContext.checkPolicyFile.

Nota: la propiedadisURLInaccessible se añadió en Flash Player 10.1 y en AIR 2.0. No obstante, esta propiedad está disponible para los archivos SWF de todas las versiones si el motro de ejecución de Flash lo admite. Así, utilizar determinadas herramientas de edición en “modo estricto” provoca un error de compilación. Para solucionar el error, utilice la sintaxis indirecta mySound["isURLInaccessible"] o desactive el modo estricto. Si utiliza Flash CS5 Professional o Flex SDK 4.1, puede usar y compilar esta API para motores de ejecución previos a Flash Player 10.1 y AIR 2.

Para contenido de la aplicación en AIR, el valor de esta propiedad siempre es false.



Implementación
    public function get isURLInaccessible():Boolean

Elementos de API relacionados

length

propiedad 
length:Number  [solo lectura]

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Longitud del sonido actual, expresada en milisegundos.



Implementación
    public function get length():Number

url

propiedad 
url:String  [solo lectura]

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

La URL desde la que se cargó el sonido. Esta propiedad sólo se aplica a objetos Sound cargados con el método Sound.load(). En el caso de objetos Sound asociados a un activo de sonido de la biblioteca de un archivo SWF, el valor de la propiedad url es null.

Cuando se llama por primera vez a Sound.load(), la propiedad url tiene un valor inicial de null, ya que aún se desconoce la URL final. La propiedad url tendrá siempre un valor no nulo y cuando se distribuya un evento open desde el objeto Sound.

La propiedad url contiene la URL absoluta final desde la que se cargó el sonido. El valor de url suele coincidir con el valor transmitido al parámetro stream de Sound.load(). Sin embargo, si se transmitió una URL relativa a Sound.load(), el valor de la propiedad url representará la URL absoluta. Además, si la petición de URL original se redirige mediante un servidor HTTP, el valor de la propiedad url reflejará la URL final desde la que se descargo en realidad el archivo de sonido. Informar sobre una URL final absoluta equivale al comportamiento de LoaderInfo.url.

En algunos casos, el valor de la propiedad url se trunca; consulte la propiedad isURLInaccessible para obtener más detalles.



Implementación
    public function get url():String

Elementos de API relacionados

Información sobre constructores

Sound

()Información sobre
public function Sound(stream:URLRequest = null, context:SoundLoaderContext = null)

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Crea un objeto Sound nuevo. Si se transmite un objeto URLRequest válido al constructor Sound, éste llamará automáticamente a la función load() del objeto Sound. Si no se transmite ningún objeto URLRequest válido al constructor Sound, debe llamar a la función load() del objeto Sound explícitamente o el flujo no se cargará.

Una vez que se ha llamado a load() en un objeto Sound, no es posible cargar más adelante un archivo de sonido distinto en el objeto Sound. Para cargar un archivo de sonido distinto, cree un objeto Sound nuevo.

En Flash Player 1.5 y versiones posteriores y en AIR 1.5 y versiones posteriores, en lugar de utilizar load(), se puede utilizar el controlador de eventos sampleData para cargar sonido de forma dinámica en el objeto Sound.

Parámetros
stream:URLRequest (default = null) — La URL que señala a un archivo MP3 externo.
 
context:SoundLoaderContext (default = null) — Objeto de contexto SoundLoader opcional que puede definir el tiempo del búfer (número mínimo de milisegundos de datos MP3 almacenados en el búfer del objeto Sound) y puede especificar si la aplicación debe buscar un archivo de política entre dominios para poder cargar el sonido.
Información sobre métodos

close

()método
public function close():void

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Cierra el flujo y provoca la detención de cualquier descarga de datos. No se pueden leer datos del flujo después de llamar al método close().


Emite
IOError — No se pudo cerrar el flujo o éste no se abrió.

Ejemplo  ( Cómo utilizar este ejemplo )

En el ejemplo siguiente, cuando el usuario haga clic en el botón Stop (Detener), se llamará al método Sound.close() y se detendrá la transmisión del sonido.

En el constructor, se crea un campo de texto para el botón Start (Iniciar) y Stop (Detener). Cuando el usuario hace clic en el campo de texto, se invoca el método clickHandler(). Este método controla el inicio y la detención del archivo de sonido. Tenga en cuenta que dependiendo de la conexión de red o de cuándo el usuario hace clic en el botón Stop, gran parte del archivo podría estar ya cargado y es posible que tarde un poco en detenerse la reproducción. Se utiliza un bloque try...catch para capturar cualquier error de entrada y salida que pueda tener ocurrir durante el cierre de la transmisión. Por ejemplo, si el sonido se carga desde un directorio local y no se transmite, se captura el error 2029, que indica que este objeto URLStream no tiene una transmisión abierta."

 
package {
    import flash.display.Sprite;
    import flash.net.URLRequest;
    import flash.media.Sound;    
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.events.MouseEvent;
    import flash.errors.IOError;
    import flash.events.IOErrorEvent;

    public class Sound_closeExample extends Sprite {
        private var snd:Sound = new Sound();
        private var button:TextField = new TextField();
        private var req:URLRequest = new URLRequest("http://av.adobe.com/podcast/csbu_dev_podcast_epi_2.mp3");
        
        public function Sound_closeExample() {
            button.x = 10;
            button.y = 10;
            button.text = "START";
            button.border = true;
            button.background = true;
            button.selectable = false;
            button.autoSize = TextFieldAutoSize.LEFT;

            button.addEventListener(MouseEvent.CLICK, clickHandler);

            this.addChild(button);
        }

        private function clickHandler(e:MouseEvent):void {

            if(button.text == "START") {

                snd.load(req);
                snd.play();        

                snd.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);

                button.text = "STOP";
            }
            else if(button.text == "STOP") {
                    
                try {
                    snd.close();
                    button.text = "Wait for loaded stream to finish.";
                }
                catch (error:IOError) {
                    button.text = "Couldn't close stream " + error.message;    
                }
            }
        }
        
        private function errorHandler(event:IOErrorEvent):void {
                button.text = "Couldn't load the file " + event.text;
        }
    }
}


extract

()método 
public function extract(target:ByteArray, length:Number, startPosition:Number = -1):Number

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: Flash Player 10, AIR 1.5

Extrae datos de sonido sin procesar de un objeto Sound.

Este método se ha diseñado para utilizarse cuando se trabaja con audio generado dinámicamente, utilizando una función asignada al evento sampleData para un objeto Sound diferente. Esto significa que puede utilizar este método para extraer sonido de un objeto Sound. Seguidamente, puede escribir los datos en el conjunto de bytes que otro objeto Sound esté utilizando para flujos de audio dinámico.

Los datos de audio se colocan en el conjunto de bytes de destino comenzando por la posición actual del conjunto. Los datos de audio siempre se exponen como Estéreo a 44100 Hz. El tipo de muestra es un punto flotante de 32 bits, el cual se puede convertir a un valor Number utilizando ByteArray.readFloat().

Parámetros

target:ByteArray — Un objeto ByteArray en el que se colocan las muestran de sonido extraídas.
 
length:Number — El número de muestras de sonido que se van a extraer. Una muestra contiene los canales izquierdo y derecho, es decir, dos valores de punto flotante de 32 bits.
 
startPosition:Number (default = -1) — La muestra en la que se inicia la extracción. Si no se especifica un valor, la primera llamada a Sound.extract() se inicia al comienzo del sonido; la llamadas siguientes sin un valor para startPosition progresan secuencialmente a través del archivo.

Valor devuelto
Number — El número de muestras escritas en ByteArray especificado en el parámetro target.

Elementos de API relacionados


Ejemplo  ( Cómo utilizar este ejemplo )

El siguiente ejemplo carga un archivo mp3 y utiliza el método extract() de la clase Sound para acceder a los datos de audio.

Los datos mp3 se cargan en el elemento sourceSnd del objeto Sound. Cuando la aplicación carga los datos mp3, llama a la función loaded() (el controlador de eventos del evento complete del objeto sourceSnd). Un segundo objeto Sound, outputSound, se utiliza para reproducir el audio modificado. El objeto outputSound tiene un detector de eventos sampleData, de modo que el objeto distribuye eventos sampleData de forma periódica una vez llamado el método play() del objeto. El método upOctave() devuelve un conjunto de datos de audio modificados basados en los datos de audio originales. Devuelve el audio una octava por encima omitiendo cualquier otra muestra de audio incluida en los datos originales. El controlador de eventos del evento sampleData escribe el conjunto de bytes devuelto en la propiedad data del objeto outputSound. El conjunto de bytes data se añade a los datos de audio de salida para el objeto outputSound.

Para probar este ejemplo, añada un archivo test.mp3 al mismo directorio que el archivo SWF.

var sourceSnd:Sound = new Sound();
var outputSnd:Sound = new Sound();
var urlReq:URLRequest = new URLRequest("test.mp3");

sourceSnd.load(urlReq);
sourceSnd.addEventListener(Event.COMPLETE, loaded);

function loaded(event:Event):void
{
    outputSnd.addEventListener(SampleDataEvent.SAMPLE_DATA, processSound);
    outputSnd.play();
}

function processSound(event:SampleDataEvent):void
{
    var bytes:ByteArray = new ByteArray();
    sourceSnd.extract(bytes, 4096);
    event.data.writeBytes(upOctave(bytes));
}

function upOctave(bytes:ByteArray):ByteArray
{
    var returnBytes:ByteArray = new ByteArray();
    bytes.position = 0;
    while(bytes.bytesAvailable > 0)
    {
        returnBytes.writeFloat(bytes.readFloat());
        returnBytes.writeFloat(bytes.readFloat());
        if (bytes.bytesAvailable > 0)
        {
            bytes.position += 8;
        }
    }
    return returnBytes;
}

load

()método 
public function load(stream:URLRequest, context:SoundLoaderContext = null):void

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Inicia la carga de un archivo MP3 externo desde la URL especificada. Si se proporciona un objeto URLRequest válido al constructor Sound, éste llamará a Sound.load() por el usuario. Sólo es necesario llamar a Sound.load() de forma explícita si no se transmite un objeto URLRequest válido al constructor Sound o se transmite un valor null.

Una vez que se ha llamado a load() en un objeto Sound, no es posible cargar más adelante un archivo de sonido distinto en el objeto Sound. Para cargar un archivo de sonido distinto, cree un objeto Sound nuevo.

Cuando utilice este método, puede ser conveniente usar el modelo de seguridad siguiente:

  • No se admiten llamadas a Sound.load() si el archivo que realiza la llamada se encuentra en el entorno limitado local con el sistema de archivos y el sonido está en un entorno limitado de red.
  • Para acceder desde el entorno limitado local de confianza o local con acceso a la red se necesitan permisos del sitio web a través de un archivo de política URL.
  • No es posible conectar con puertos reservados comúnmente. Para obtener una lista completa de los puertos bloqueados, consulte la sección “Restricción de API de red” en el Guía del desarrollador de ActionScript 3.0.
  • Se puede impedir que un archivo SWF utilice este método si define el parámetro allowNetworking de las etiquetas object y embed de la página HTML que aloja el contenido SWF.

En Flash Player 10 y versiones posteriores, si utiliza una estructura Content-Type de varias partes (por ejemplo, "multipart/form-data") con una acción de carga (indicada por un parámetro "filename" en un encabezado "content-disposition" dentro del cuerpo POST), la operación POST está sujeta a las reglas de seguridad aplicadas a las cargas:

  • Es preciso realizar una operación POST como respuesta a una acción iniciada por el usuario, por ejemplo, un clic de ratón o la pulsación de una tecla.
  • Si la operación POST afecta a varios dominios (el destino POST no se encuentra en el mismo servidor que el archivo SWF que envía la petición POST), el servidor de destino debe proporcionar un archivo de política URL que permita el acceso a varios dominios.

Asimismo, en cualquier estructura Content-Type de varias partes, la sintaxis debe ser válida (de acuerdo con la norma RFC2046). Si la sintaxis no es válida, la operación POST está sujeta a las reglas de seguridad que se aplican a las cargas.

En Adobe AIR, el contenido del entorno limitado de seguridad de la aplicación (contenido instalado con la aplicación de AIR) no está limitado por estas restricciones de seguridad.

Para obtener más información, consulte el tema del Centro de desarrollo de Flash Player Seguridad.

Parámetros

stream:URLRequest — Una URL que señala a un archivo MP3 externo.
 
context:SoundLoaderContext (default = null) — Objeto de contexto SoundLoader opcional que puede definir el tiempo del búfer (número mínimo de milisegundos de datos MP3 almacenados en el búfer del objeto Sound) y puede especificar si la aplicación debe buscar un archivo de política entre dominios para poder cargar el sonido.


Emite
IOError — Error de red que provoca un fallo en la carga.
 
SecurityError — Los archivos locales que no son de confianza no pueden comunicarse en Internet. Puede solucionar este problema reclasificando el archivo como archivo local de red o archivo de confianza.
 
SecurityError — No es posible conectar con puertos reservados comúnmente. Para obtener una lista completa de los puertos bloqueados, consulte la sección “Restricción de API de red” en el Guía del desarrollador de ActionScript 3.0.
 
IOError — La propiedad digest del objeto stream no es null. Sólo debe establecerse la propiedad digest de un objeto URLRequest al llamar al método URLLoader.load() cuando se carga un archivo SWZ (componente de plataforma de Adobe).

Ejemplo  ( Cómo utilizar este ejemplo )

El ejemplo siguiente muestra el progreso de carga de un archivo de sonido.

En el constructor, se crea un objeto URLRequest para identificar la ubicación del archivo de sonido, que es un podcast de Adobe. El archivo se carga en un bloque try...catch para capturar cualquier error que pueda producirse durante la carga del archivo. Si ocurre un error de entrada y salida, se invoca también el método errorHandler() y se escribe el mensaje de error en el campo de texto para el informe de progreso. Mientras esté en curso una operación de carga, se distribuye un evento ProgressEvent.PROGRESS y se llama al método progressHandler(). En este caso, se utiliza el evento ProgressEvent.PROGRESS como temporizador para calcular el progreso de la carga.

El método progressHandler() divide el valor bytesLoaded transferido con el objeto ProgressEvent entre el valor bytesTotal para llegar a un porcentaje de los datos de sonido que se están cargando. A continuación, muestra estos valores en el campo de texto. (Tenga en cuenta que si el archivo es pequeño, almacenado en la caché, o si el archivo se encuentra en el directorio local, puede que no sea perceptible el progreso.)

package {
    import flash.display.Sprite;
    import flash.net.URLRequest;
    import flash.media.Sound;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.events.ProgressEvent;
    import flash.events.IOErrorEvent;
    
    public class Sound_loadExample extends Sprite {
        private var snd:Sound = new Sound();
        private var statusTextField:TextField  = new TextField();

        public function Sound_loadExample(){

            statusTextField.autoSize = TextFieldAutoSize.LEFT;
            var req:URLRequest = new URLRequest("http://av.adobe.com/podcast/csbu_dev_podcast_epi_2.mp3");
            
            try {
            snd.load(req);
            
            snd.play();
            }
            catch (err:Error) {
                trace(err.message);
            }
 
            snd.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
            snd.addEventListener(ProgressEvent.PROGRESS, progressHandler);
                     
            this.addChild(statusTextField);
        }
    
        private function progressHandler(event:ProgressEvent):void {
            var loadTime:Number = event.bytesLoaded / event.bytesTotal;
            var LoadPercent:uint = Math.round(100 * loadTime);
              
            statusTextField.text = "Sound file's size in bytes: " + event.bytesTotal + "\n" 
                                 + "Bytes being loaded: " + event.bytesLoaded + "\n" 
                                 + "Percentage of sound file that is loaded " + LoadPercent + "%.\n";
        }
 
        private function errorHandler(errorEvent:IOErrorEvent):void {
            statusTextField.text = "The sound could not be loaded: " + errorEvent.text;
        }
    }
}

loadCompressedDataFromByteArray

()método 
public function loadCompressedDataFromByteArray(bytes:ByteArray, bytesLength:uint):void

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 3, Flash Player 11

carga datos de sonido MP3 de un objeto ByteArray en un objeto Sound. Los datos se leen desde la posición actual de ByteArray y deja la posición de ByteArray al final de la longitud de bytes especificada una vez terminado. Si los datos de sonido MP3 contienen datos ID3, se distribuirán eventos ID3 durante esta llamada a la función. Esta función emitirá una excepción si el objeto ByteArray no contiene suficientes datos.

Parámetros

bytes:ByteArray
 
bytesLength:uint

loadPCMFromByteArray

()método 
public function loadPCMFromByteArray(bytes:ByteArray, samples:uint, format:String = "float", stereo:Boolean = true, sampleRate:Number = 44100.0):void

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 3, Flash Player 11

Carga datos de sonido de coma flotante PCM de 32 bits de un objeto ByteArray en un objeto Sound. Los datos se leen desde la posición actual de ByteArray y la posición de ByteArray queda al final de la longitud de muestra especificada, multiplicada por 1 o 2 canales si después de terminar se establece el indicador estéreo.

A partir de Flash Player 11.8, se ha limitado la cantidad de datos de audio que pueden pasar a esta función. Para versiones de SWF >= 21, esta función emite una excepción si la cantidad de datos de audio pasados a ella es superior a 1800 segundos. Es decir, el valor de muestras/frecuencia de muestreo debería ser igual o inferior a 1800. En versiones de SWF < 21, se produce un error silencioso del motor de ejecución si la cantidad de datos de audio pasados supera los 12000 segundos. Esto solo sirve para compatibilidad con versiones anteriores.

Esta función produce una excepción si el objeto ByteArray no contiene suficientes datos.

Parámetros

bytes:ByteArray
 
samples:uint
 
format:String (default = "float")
 
stereo:Boolean (default = true)
 
sampleRate:Number (default = 44100.0)

play

()método 
public function play(startTime:Number = 0, loops:int = 0, sndTransform:flash.media:SoundTransform = null):SoundChannel

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Genera un nuevo objeto SoundChannel para reproducir el sonido. Este método devuelve un objeto SoundChannel al que se accede para detener el sonido y supervisar el volumen. (Para controlar el volumen, el desplazamiento lateral y el balance, acceda al objeto SoundTransform asignado al canal de sonido.)

Parámetros

startTime:Number (default = 0) — La posición inicial en la que debería iniciarse la reproducción, expresada en milisegundos.
 
loops:int (default = 0) — Define el número de veces que un sonido vuelve indefinidamente al valor startTime antes de que el canal de sonido detenga la reproducción.
 
sndTransform:flash.media:SoundTransform (default = null) — El objeto SoundTransform inicial asignado al canal de sonido.

Valor devuelto
SoundChannel — Un objeto SoundChannel que se utiliza para controlar el sonido. El método devuelve null si no hay tarjeta de sonido o se ha quedado sin canales de sonido disponibles. El número máximo de canales de sonido disponibles simultáneamente es 32.

Elementos de API relacionados


Ejemplo  ( Cómo utilizar este ejemplo )

En el ejemplo siguiente, una vez que se carga el archivo, el usuario puede utilizar una barra gráfica para seleccionar la posición inicial (tiempo de inicio) del archivo de sonido.

El constructor llama al método Sound.load() para empezar a cargar los datos de sonido. A continuación, llama al método Sound.play() que iniciará la reproducción del sonido en cuanto haya suficientes datos cargados. El método Sound.play() devuelve un objeto SoundChannel que se puede utilizar para controlar la reproducción del sonido. El campo de texto muestra las instrucciones. Para asegurarse de que se ha cargado ya el contenido de la posición donde el usuario desea que comience el sonido, se crea el objeto Sprite bar y se muestra después de que haya finalizado la carga del archivo. Se distribuye un evento Event.COMPLETE cuando el archivo se ha cargado correctamente, lo que activa el método completeHandler(). El método completeHandler() crea a continuación la barra y la añade a la lista de visualización. (Se utiliza un objeto sprite en lugar de un objeto shape para permitir la interactividad.) Cuando el usuario hace clic en la barra, se activa el método clickHandler().

En el método clickHandler(), se utiliza la posición de la coordenada x del clic del usuario, event.localX, para determinar la posición en la que el usuario desea que se inicie el archivo. Puesto que la barra es de 100 píxeles y se inicia en la coordenada x de 100 píxeles, es fácil determinar el porcentaje de la posición. Además, ya que se carga el archivo, la propiedad length del archivo de sonido tendrá la longitud del archivo completo en milisegundos. Con el uso de la longitud del archivo de sonido y la posición en la línea, se determina una posición inicial para el archivo de sonido. Después de detener la reproducción del sonido, el archivo de sonido se reinicia en la posición inicial seleccionada, que es pasado el parámetro startTime en el método play().

 
package {
    import flash.display.Sprite;
    import flash.display.Graphics;
    import flash.events.MouseEvent;
    import flash.media.Sound;;
    import flash.net.URLRequest;
    import flash.media.SoundChannel;
    import flash.events.ProgressEvent;
    import flash.events.Event;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.events.IOErrorEvent;
    
    public class Sound_playExample1 extends Sprite {
        private var snd:Sound = new Sound();
        private var channel:SoundChannel = new SoundChannel();
        private var infoTextField:TextField = new TextField();
    
        public function Sound_playExample1() {

            var req:URLRequest = new URLRequest("MySound.mp3");
            
            infoTextField.autoSize = TextFieldAutoSize.LEFT;
            infoTextField.text = "Please wait for the file to be loaded.\n" 
                                + "Then select from the bar to decide where the file should start.";
            
            snd.load(req);               
            channel = snd.play();

            snd.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
            snd.addEventListener(Event.COMPLETE, completeHandler);


            this.addChild(infoTextField);
        }

        private function completeHandler(event:Event):void {                
            infoTextField.text = "File is ready.";

            var bar:Sprite = new Sprite();

            bar.graphics.lineStyle(5, 0xFF0000);
            bar.graphics.moveTo(100, 100);
            bar.graphics.lineTo(200, 100);

            bar.addEventListener(MouseEvent.CLICK, clickHandler);

            this.addChild(bar);
        }
    
        private function clickHandler(event:MouseEvent):void {
            
                var position:uint = event.localX;
                var percent:uint = Math.round(position) - 100;   
                var cue:uint = (percent / 100) * snd.length;

                channel.stop();
                channel = snd.play(cue);    
        }

        private function errorHandler(errorEvent:IOErrorEvent):void {
            infoTextField.text = "The sound could not be loaded: " + errorEvent.text;
        }
    }
}

En el ejemplo siguiente, dependiendo de si el usuario hace clic o doble clic en un botón, el sonido se reproducirá una o dos veces.

En el constructor, se carga el sonido y se crea un sencillo objeto sprite button rectangular. (Se utiliza un objeto sprite en lugar de un objeto shape para permitir la interactividad.) En este caso, se asume que el archivo se encuentra en el mismo directorio que el archivo SWF. (No hay código de gestión de errores para este ejemplo.)

Se configuran dos detectores de eventos para que respondan a los clic y a los dobles clic del ratón. Si el usuario hace clic una vez, se invoca el método clickHandler(), que reproduce el sonido. Si el usuario hace doble clic en el botón, se invoca el método doubleClickHandler(), que reproducirá dos veces el archivo de sonido. El segundo argumento del método play() se establece en 1, lo que significa que el sonido volverá en bucle una vez al tiempo de inicio del sonido y lo reproducirá de nuevo. El tiempo de inicio, el primer argumento, se establece en 0, lo que significa que el archivo se reproducirá desde el principio.

package {
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.media.Sound;
    import flash.net.URLRequest;

    public class Sound_playExample2 extends Sprite {
        private var button:Sprite = new Sprite(); 
        private var snd:Sound = new Sound();
            
        public function Sound_playExample2() {

            var req:URLRequest = new URLRequest("click.mp3");
            snd.load(req);               
     
            button.graphics.beginFill(0x00FF00);
            button.graphics.drawRect(10, 10, 50, 30);
            button.graphics.endFill();
     
            button.addEventListener(MouseEvent.CLICK, clickHandler);
            button.addEventListener(MouseEvent.DOUBLE_CLICK, doubleClickHandler);
     
            this.addChild(button);
        }

        private function clickHandler(event:MouseEvent):void {
            snd.play();            
        }

        private function doubleClickHandler(event:MouseEvent):void {
            snd.play(0, 2);        
        }
    }
}

El ejemplo siguiente muestra el progreso de carga y reproducción de un archivo de sonido.

En el constructor, el archivo se carga en un bloque try...catch para capturar cualquier error que pueda producirse durante la carga del archivo. Se añade un detector al objeto de sonido que responderá a un evento IOErrorEvent mediante la llamada al método errorHandler(). Se añade otro detector para la aplicación principal que responderá a un evento Event.ENTER_FRAME, que se utiliza como mecanismo de temporización para mostrar el progreso de la reproducción. Por último, se añade un tercer detector para el canal de sonido que responderá a un evento Event.SOUND_COMPLETE (cuando el sonido haya terminado de reproducirse), mediante la llamada al método soundCompleteHandler(). El método soundCompleteHandler() elimina también el detector de eventos para el evento Event.ENTER_FRAME.

El método enterFrameHandler() divide el valor bytesLoaded transferido con el objeto ProgressEvent entre el valor bytesTotal para llegar a un porcentaje de los datos de sonido que se están cargando. El porcentaje de los datos de sonido que se están reproduciendo se podría determinar dividiendo el valor de la propiedad position del canal de sonido entre la longitud de los datos de sonido. Sin embargo, si los datos de sonido no se cargan completamente, la propiedad length del objeto de sonido muestra sólo el tamaño de los datos de sonido que están cargados actualmente. Una estimación del tamaño final del archivo de sonido completo se calcula dividiendo el valor de length del objeto de sonido actual entre el valor de la propiedad bytesLoaded dividido entre el valor de la propiedad bytesTotal.

Tenga en cuenta que si el archivo es pequeño, almacenado en la caché, o si el archivo se encuentra en el directorio local, puede que no sea perceptible el progreso de la carga. Asimismo, el tiempo de retardo entre el inicio de la carga de los datos de sonido y el inicio de la reproducción de los datos cargados está determinado por el valor de la propiedad SoundLoaderContext.buffertime, que se establece de forma predeterminada en 1000 milisegundos y que se puede volver a establecer.

package {
    import flash.display.Sprite;
    import flash.net.URLRequest;
    import flash.media.Sound;
    import flash.media.SoundChannel;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.events.Event;
    import flash.events.IOErrorEvent;
    
    public class Sound_playExample3 extends Sprite {
        private var snd:Sound = new Sound();
        private var channel:SoundChannel;
        private var statusTextField:TextField  = new TextField();

        public function Sound_playExample3(){

            statusTextField.autoSize = TextFieldAutoSize.LEFT;

           var req:URLRequest = new URLRequest("http://av.adobe.com/podcast/csbu_dev_podcast_epi_2.mp3");
            
            try {
                snd.load(req);
            
                channel = snd.play();
            }
            catch (err:Error) {
                trace(err.message);
            }
                    
            snd.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
            addEventListener(Event.ENTER_FRAME, enterFrameHandler);
            channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);
                    
            this.addChild(statusTextField);
        }
    
        private function enterFrameHandler(event:Event):void {    
            var loadTime:Number = snd.bytesLoaded / snd.bytesTotal;
            var loadPercent:uint = Math.round(100 * loadTime);
            var estimatedLength:int = Math.ceil(snd.length / (loadTime));
            var playbackPercent:uint = Math.round(100 * (channel.position / estimatedLength));
      
            statusTextField.text = "Sound file's size is " + snd.bytesTotal + " bytes.\n" 
                                   + "Bytes being loaded: " + snd.bytesLoaded + "\n" 
                                   + "Percentage of sound file that is loaded " + loadPercent + "%.\n"
                                   + "Sound playback is " + playbackPercent + "% complete.";     
        }
 
        private function errorHandler(errorEvent:IOErrorEvent):void {
            statusTextField.text = "The sound could not be loaded: " + errorEvent.text;
        }

        private function soundCompleteHandler(event:Event):void {
            statusTextField.text = "The sound has finished playing.";
            removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
        }
    }
}
Información sobre eventos

complete

Evento
Tipo de objeto de evento: flash.events.Event
propiedad Event.type = flash.events.Event.COMPLETE

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Se distribuye cuando los datos se han cargado correctamente.

La constante Event.COMPLETE define el valor de la propiedad type de un objeto de evento complete.

Este evento tiene las propiedades siguientes:

PropiedadValor
bubblesfalse
cancelablefalse; no hay ningún comportamiento predeterminado que cancelar.
currentTargetObjeto que procesa de forma activa el objeto de evento con un detector de eventos.
targetObjeto de red que ha terminado de cargarse.

Elementos de API relacionados

id3

Evento  
Tipo de objeto de evento: flash.events.Event
propiedad Event.type = flash.events.Event.ID3

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Distribuido por un objeto Sound cuando hay datos ID3 disponibles para un sonido MP3.

La constante Event.ID3 define el valor de la propiedad type de un objeto de evento id3.

Este evento tiene las propiedades siguientes:

PropiedadValor
bubblesfalse
cancelablefalse; no hay ningún comportamiento predeterminado que cancelar.
currentTargetObjeto que procesa de forma activa el objeto de evento con un detector de eventos.
targetObjeto Sound que carga el MP3 para el que los datos ID3 están ahora disponibles. El objeto target no siempre es el objeto de la lista de visualización que registró el detector de eventos. Utilice la propiedad currentTarget para acceder al objeto de la lista de visualización que está procesando el evento actualmente.

Elementos de API relacionados

ioError

Evento  
Tipo de objeto de evento: flash.events.IOErrorEvent
propiedad IOErrorEvent.type = flash.events.IOErrorEvent.IO_ERROR

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Se distribuye cuando se produce un error de entrada o salida que provoca que una operación de carga se realice incorrectamente.

Define el valor de la propiedad type de un objeto de evento ioError.

Este evento tiene las propiedades siguientes:

PropiedadValor
bubblesfalse
cancelablefalse; no hay ningún comportamiento predeterminado que cancelar.
currentTargetObjeto que procesa de forma activa el objeto de evento con un detector de eventos.
errorIDUn número de referencia asociado al error concreto (sólo AIR).
targetEl objeto de red en el que se produce el error de entrada/salida.
textTexto que se mostrará como mensaje de error.

Elementos de API relacionados

open

Evento  
Tipo de objeto de evento: flash.events.Event
propiedad Event.type = flash.events.Event.OPEN

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Se distribuye cuando se inicia la operación de carga.

La constante Event.OPEN define el valor de la propiedad type de un objeto de evento open.

Este evento tiene las propiedades siguientes:

PropiedadValor
bubblesfalse
cancelablefalse; no hay ningún comportamiento predeterminado que cancelar.
currentTargetObjeto que procesa de forma activa el objeto de evento con un detector de eventos.
targetObjeto de red que ha abierto una conexión.

Elementos de API relacionados

progress

Evento  
Tipo de objeto de evento: flash.events.ProgressEvent
propiedad ProgressEvent.type = flash.events.ProgressEvent.PROGRESS

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Se distribuye al recibirse datos mientras progresa una operación de carga.

Define el valor de la propiedad type de un objeto de evento progress.

Este evento tiene las propiedades siguientes:

PropiedadValor
bubblesfalse
bytesLoadedNúmero de elementos o bytes cargados en el momento en que el detector procesa el evento.
bytesTotalNúmero total de elementos o bytes que se cargarán en última instancia si el proceso de carga se realiza correctamente.
cancelablefalse; no hay ningún comportamiento predeterminado que cancelar.
currentTargetObjeto que procesa de forma activa el objeto de evento con un detector de eventos.
targetEl objeto que informa sobre el progreso.

Elementos de API relacionados

sampleData

Evento  
Tipo de objeto de evento: flash.events.SampleDataEvent
propiedad SampleDataEvent.type = flash.events.SampleDataEvent.SAMPLE_DATA

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: Flash Player 10, AIR 1.5

Se distribuye cuando el motor de ejecución solicita nuevos datos de audio.

Define el valor de la propiedad type de un objeto de evento SampleDataEvent.

Este evento tiene las propiedades siguientes:

PropiedadValor
bubblesfalse
cancelablefalse; no hay ningún comportamiento predeterminado que cancelar.
positionEl punto desde el que se proporcionan los datos de audio.

Ejemplo  ( Cómo utilizar este ejemplo )

En el siguiente ejemplo se reproduce una onda sinusoidal simple.
var mySound:Sound = new Sound();
function sineWaveGenerator(event:SampleDataEvent):void {
    for ( var c:int=0; c<8192; c++ ) {
        event.data.writeFloat(Math.sin((Number(c+event.position)/Math.PI/2))*0.25);
        event.data.writeFloat(Math.sin((Number(c+event.position)/Math.PI/2))*0.25);
    }
}

mySound.addEventListener(SampleDataEvent.SAMPLE_DATA,sineWaveGenerator);
mySound.play();

Elementos de API relacionados

SoundExample.as

En el ejemplo siguiente, se muestra información sobre los eventos de sonido que se producen al abrir y reproducir un archivo MP3. Para ejecutar el ejemplo, coloque un archivo llamado MySound.mp3 en el mismo directorio que el archivo SWF.
package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.media.Sound;
    import flash.media.SoundChannel;
    import flash.net.URLRequest;

    public class SoundExample extends Sprite {
        private var url:String = "MySound.mp3";
        private var song:SoundChannel;

        public function SoundExample() {
            var request:URLRequest = new URLRequest(url);
            var soundFactory:Sound = new Sound();
            soundFactory.addEventListener(Event.COMPLETE, completeHandler);
            soundFactory.addEventListener(Event.ID3, id3Handler);
            soundFactory.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            soundFactory.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            soundFactory.load(request);
            song = soundFactory.play();
        }

        private function completeHandler(event:Event):void {
            trace("completeHandler: " + event);
        }

        private function id3Handler(event:Event):void {
            trace("id3Handler: " + event);
        }

        private function ioErrorHandler(event:Event):void {
            trace("ioErrorHandler: " + event);
        }

        private function progressHandler(event:ProgressEvent):void {
            trace("progressHandler: " + event);
        }
    }
}




[ X ]¿Por qué hay texto en inglés?
Cierto contenido de la Referencia de ActionScript 3.0 se muestra en inglés

No todo el contenido de la Referencia de ActionScript 3.0 se traduce a todos los idiomas. Si un elemento del lenguaje no se traduce, aparecerá en inglés. Por ejemplo, la clase ga.controls.HelpBox no está traducida en ningún idioma. Por lo tanto, en la versión en español de la referencia, la clase ga.controls.HelpBox aparecerá en inglés.