MediaPlayer Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo.
[Android.Runtime.Register("android/media/MediaPlayer", DoNotGenerateAcw=true)]
public class MediaPlayer : Java.Lang.Object, Android.Media.IAudioRouting, Android.Media.IVolumeAutomation, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("android/media/MediaPlayer", DoNotGenerateAcw=true)>]
type MediaPlayer = class
inherit Object
interface IAudioRouting
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface IVolumeAutomation
- Herencia
- Atributos
- Implementaciones
Comentarios
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo.
MediaPlayer no es seguro para subprocesos. La creación y todo el acceso a las instancias del reproductor debe estar en el mismo subproceso. Si registra devoluciones de llamada, el subproceso debe tener un looper.
Los temas que se tratan aquí son: ol>li State Diagram<li>Valid and Invalid States<li Permissions<li>>Register informational and error callbacks</ol><<>
<div class="special reference"><h3>Developer Guides</h3>
Para obtener más información sobre cómo usar MediaPlayer, lea la guía para desarrolladores de reproducción multimedia.
</Div>
"StateDiagram"><h3>State Diagram</h3>
El control de reproducción de archivos y secuencias de audio/vídeo se administra como una máquina de estado. En el diagrama siguiente se muestra el ciclo de vida y los estados de un objeto MediaPlayer controlado por las operaciones de control de reproducción admitidas. Los óvalos representan los estados en los que puede residir un objeto MediaPlayer. Los arcos representan las operaciones de control de reproducción que controlan la transición del estado del objeto. Hay dos tipos de arcos. Los arcos con un solo encabezado de flecha representan llamadas a métodos sincrónicos, mientras que los que tienen un encabezado de flecha doble representan llamadas de método asincrónico.
<img src=".. /.. /.. /images/mediaplayer_state_diagram.gif" alt="MediaPlayer State diagram" border="0" />
En este diagrama de estado, se puede ver que un objeto MediaPlayer tiene los estados siguientes:
<ul>li Cuando se acaba de crear un objeto MediaPlayer con new
o después #reset()
de llamar a , se encuentra en estado <em>Idle</em>; y después #release()
de llamar a , se encuentra en el <estado em>End</em>.>< Entre estos dos estados es el ciclo de vida del objeto MediaPlayer. <ul><li>Hay una diferencia sutil pero importante entre un objeto MediaPlayer recién construido y el objeto MediaPlayer después #reset()
de llamar a . Es un error de programación invocar métodos como #getCurrentPosition()
, , #getDuration()
#setLooping(boolean)
#setVolume(float, float)
#getVideoHeight()
#getVideoWidth()
#setAudioAttributes(AudioAttributes)
#stop()
#start()
#pause()
, , #seekTo(long, int)
#prepare()
o #prepareAsync()
en el <estado em>Idle</em> para ambos casos. Si se llama a cualquiera de estos métodos justo después de construir un objeto MediaPlayer, el método de devolución de llamada proporcionado por el usuario OnErrorListener.onError() no será llamado por el motor del reproductor interno y el estado del objeto permanece sin cambios; pero si se llama a estos métodos justo después #reset()
de , el motor interno del reproductor invocará el método de devolución de llamada proporcionado por el usuario OnErrorListener.onError() y el objeto se transferirá al <estado em>Error</em> . </li li><>Debes mantener una referencia a una instancia de MediaPlayer para evitar que se recolecte de elementos no utilizados. Si se recopila una instancia de MediaPlayer, #release
se llamará a , lo que hará que se detenga cualquier reproducción en curso. <li>Debe llamar #release()
una vez que haya terminado de usar una instancia para liberar recursos adquiridos, como memoria y códecs. Una vez que haya llamado #release
a , ya no debe interactuar con la instancia publicada. <los objetos li>MediaPlayer creados con new
se encuentran en estado <em>Idle</em> , mientras que los creados con uno de los métodos prácticos create
sobrecargados son <em>NOT</em> en el <estado em>Idle</em> . De hecho, los objetos están en estado <em>Prepared</em> si la creación mediante create
el método se realiza correctamente. </li></ul></li li>><En general, algunas operaciones de control de reproducción pueden producir errores debido a diversos motivos, como el formato de audio/vídeo no admitidos, audio/vídeo mal intercalado, resolución demasiado alta, tiempo de espera de streaming y similares. Por lo tanto, los informes de errores y la recuperación son una preocupación importante en estas circunstancias. A veces, debido a errores de programación, también puede producirse la invocación de una operación de control de reproducción en un estado no válido. En todas estas condiciones de error, el motor del reproductor interno invoca un usuario proporcionado por el método OnErrorListener.onError() si se ha registrado un onErrorListener de antemano a través #setOnErrorListener(android.media.MediaPlayer.OnErrorListener)
de . <ul><li>Es importante tener en cuenta que una vez que se produce un error, el objeto MediaPlayer entra en el <estado em>Error</em> (excepto como se indicó anteriormente), incluso si la aplicación no ha registrado un agente de escucha de errores.</li li><>Para reutilizar un objeto MediaPlayer que se encuentra en el <estado em> Error</em> y recuperarse del error, #reset()
se puede llamar para restaurar el objeto a su <estado em>Idle</em>.</li li><>Es recomendable que la aplicación registre un onErrorListener para buscar notificaciones de error del motor del reproductor interno.</li><li>IllegalStateException se produce para evitar errores de programación como llamar a #prepare()
, #prepareAsync()
o uno de los métodos sobrecargados setDataSource
en un estado no válido. </li>/ul></li li><>Llamando #setDataSource(FileDescriptor)
a , o #setDataSource(String)
, o #setDataSource(Context, Uri)
, o , o #setDataSource(MediaDataSource)
#setDataSource(FileDescriptor, long, long)
transfiere un objeto MediaPlayer en el <estado em>Idle</em> al <estado em>Initialized</em>.< <ul><li>An IllegalStateException is thrown if setDataSource() is called in any other state.</li li>><Es una buena práctica de programación buscar IllegalArgumentException
siempre y IOException
que se puede producir a partir de los métodos sobrecargados.<setDataSource
El objeto /li></ul<>/li<>>A MediaPlayer debe entrar primero en el <estado em>Prepared</em> para poder iniciar la reproducción. <ul>li Hay dos maneras (sincrónicas frente a asincrónicas) a las que se puede alcanzar el <estado em>Prepared/em>: una llamada a #prepare()
(sincrónica) que transfiere el objeto al <estado em>Prepared<</em> una vez que la llamada al método devuelve, o una llamada a #prepareAsync()
(asincrónica) que primero transfiere el objeto a em>< Prepare</em>.>< estado después de que la llamada devuelva (que se produce casi de inmediato) mientras el motor del reproductor interno continúa trabajando en el resto del trabajo de preparación hasta que se complete el trabajo de preparación. Cuando la preparación se completa o cuando #prepare()
se devuelve la llamada, el motor del reproductor interno llama a un método de devolución de llamada proporcionado por el usuario, onPrepared() de la interfaz OnPreparedListener, si un OnPreparedListener se registra de antemano a través #setOnPreparedListener(android.media.MediaPlayer.OnPreparedListener)
de .</li li>><Es importante tener en cuenta que el <estado em>Prepare/em> es un estado transitorio y el comportamiento de llamar a cualquier método con efecto secundario mientras que un objeto MediaPlayer está en el <estado em>Prepare<</em> es indefinido.</li li><>Se produce una excepción IllegalStateException si #prepare()
se llama a o #prepareAsync()
en cualquier otro estado.</li li>><Mientras está en estado <em>Prepared</em>, las propiedades como audio/sonido, screenOnWhilePlaying, se pueden ajustar mediante la invocación de los métodos de conjunto correspondientes.</li></ul></li li>><Para iniciar la reproducción, #start()
se debe llamar a . Después #start()
de que se devuelva correctamente, el objeto MediaPlayer se encuentra en estado <em>Started</em> . #isPlaying()
se puede llamar a para probar si el objeto MediaPlayer está en estado <em>Started</em> . <ul>li While in the <em Started</em>> state, the internal player engine calls a user supplied OnBufferingUpdateListener.onBufferingUpdate() callback method if a OnBufferingUpdateListener has been registered beforehand via #setOnBufferingUpdateListener(OnBufferingUpdateListener)
.>< Esta devolución de llamada permite a las aplicaciones realizar un seguimiento del estado de almacenamiento en búfer mientras se transmite audio/vídeo.</li>><Calling #start()
no tiene ningún efecto en un objeto MediaPlayer que ya está en estado <em>Started</em>.</li></ul></li li>><La reproducción se puede pausar y detener, y se puede ajustar la posición de reproducción actual. La reproducción se puede pausar a través de #pause()
. Cuando la llamada a #pause()
devuelve, el objeto MediaPlayer entra en estado <em>Paused</em> . Tenga en cuenta que la transición del <estado em>Started</em> al <estado em>Paused</em> y viceversa se produce de forma asincrónica en el motor del reproductor. Puede tardar algún tiempo antes de que el estado se actualice en llamadas a #isPlaying()
y puede ser un número de segundos en el caso del contenido transmitido. <ul><li>Calling #start()
to resume playback for a paused MediaPlayer object, and the resume playback position is the same as where it was paused. Cuando la llamada a #start()
devuelve, el objeto MediaPlayer en pausa vuelve al <estado em>Started</em>.</li>><Calling #pause()
no tiene ningún efecto en un objeto MediaPlayer que ya está en estado <em>Paused</em>.</li>/ul></li la>><llamada a #stop()
detiene la reproducción y hace que un objeto MediaPlayer en el <estado em>Started</em>, <em>Paused</em>, <em>Prepared </em> o <em>PlaybackCompleted</em para entrar en el <estado em>Stopped</em>>.< <ul><li>Una vez en el <estado em>Stopped</em>, la reproducción no se puede iniciar hasta #prepare()
o #prepareAsync()
se llama para establecer el objeto MediaPlayer en el <estado em>Prepared</em> de nuevo.</li><>Calling #stop()
no tiene ningún efecto en un objeto MediaPlayer que ya está en estado <emStopped></em>.</li></ul></li li li<>>La posición de reproducción se puede ajustar con una llamada a #seekTo(long, int)
. <ul><li>Aunque la llamada asincrónica #seekTo(long, int)
vuelve inmediatamente, la operación de búsqueda real puede tardar un tiempo en finalizar, especialmente para que se transmita audio/vídeo. Cuando se completa la operación de búsqueda real, el motor del reproductor interno llama a un usuario proporcionado onSeekComplete.onSeekComplete() si se ha registrado previamente un onSeekCompleteListener a través #setOnSeekCompleteListener(OnSeekCompleteListener)
de .</li li>><Tenga en cuenta que #seekTo(long, int)
también se puede llamar en los demás estados, como <em>Prepared</em>, <em>Paused</em> y <em>PlaybackCompleted </em> state. Cuando #seekTo(long, int)
se llama a en esos estados, se mostrará un fotograma de vídeo si la secuencia tiene vídeo y la posición solicitada es válida. </li><li>Además, la posición real de reproducción actual se puede recuperar con una llamada a #getCurrentPosition()
, que es útil para aplicaciones como un reproductor de música que necesitan realizar un seguimiento del progreso de la reproducción.</li></ul></li li>><Cuando la reproducción llega al final de la secuencia, se completa la reproducción. <ul>li Si el modo de bucle se estableció en <var>true</var> con #setLooping(boolean)
, el objeto MediaPlayer permanecerá en el <estado em>Started</em>.<></li li>><Si el modo de bucle se estableció en <var>false </var>, el motor del reproductor llama a un método de devolución de llamada proporcionado por el usuario, OnCompletion.onCompletion(), si un OnCompletionListener se registra de antemano a través #setOnCompletionListener(OnCompletionListener)
de . La invocación de la devolución de llamada indica que el objeto está ahora en estado <em> PlaybackCompleted</em>.</li li>><Mientras está en el <estado em>PlaybackCompleted</em>, la llamada #start()
puede reiniciar la reproducción desde el principio del origen de audio y vídeo.</li></ul>
"Valid_and_Invalid_States"><h3>Estados válidos y no válidos</h3>
<table border="0" cellspacing="0" cellpadding="0">tr td>Method Name </p></td td<>>Valid States </p></td td<>>Invalid States </p></td td<>>comments /p/td td Comments </p></td>< tr td><><>attachAuxEffect </p></td td>><{Initialized, Preparado, Iniciado, Pausado, Detenido, PlaybackCompleted}</p></td td><>{Idle, Error}</p/><><< td td><>Este método debe llamarse después de setDataSource. Llamarlo no cambia el estado del objeto. </p></td></tr tr td>><<>getAudioSessionId </p></td td>><any </p></td td>{}<></p></td td>><Este método se puede llamar en cualquier estado y llamarlo no cambia el estado del objeto. </p></td/tr tr td>><><getCurrentPosition </p></td td><>{Idle, Initialized, Prepared, Started, Paused><, Stopped, PlaybackCompleted}</p></td td>><{Error}</p></td td><>Successful invoke of this method in a valid state does not change the state. Al llamar a este método en un estado no válido, se transfiere el objeto al <estado em>Error</em> . </p></td></tr tr><td>><getDuration </p></td td><>{Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td td>><{Idle, Initialized, Error}</p></td td><>La invocación correcta de este método en un estado válido no cambia el estado. Al llamar a este método en un estado no válido, se transfiere el objeto al <estado em>Error</em> . </p></td/tr tr td>><><getVideoHeight </p></td td><>{Idle, Initialized, Prepared, Started, Paused><, Stopped, PlaybackCompleted}</p></td td>><{Error}</p></td td><>Successful invoke of this method in a valid state does not change the state. Al llamar a este método en un estado no válido, se transfiere el objeto al <estado em>Error</em> . </p></td/tr tr td>><><getVideoWidth </p></td td><>{Idle, Initialized, Prepared, Started, Paused><, Stopped, PlaybackCompleted}</p></td td>><{Error}</p></td td><>Successful invoke of this method in a valid state does not change the state. Al llamar a este método en un estado no válido, se transfiere el objeto al <estado em>Error</em> . </p></td/tr tr><td>><isPlaying </p></td td>><{Idle, Initialized, Prepared, Started, Paused><, Stopped, PlaybackCompleted}</p></td td>><{Error}</p></td td><>Successful invoke of this method in a valid state does not change the state. Al llamar a este método en un estado no válido, se transfiere el objeto al <estado em>Error</em> . </p></td></tr tr td>><><pause </p></td td>><{Started, Paused, PlaybackCompleted}</p></td td>><{Idle, Initialized, Prepared, Stopped, Error}</p></td td><>La invocación correcta de este método en un estado válido transfiere el objeto al <estado em>Paused</em.> Al llamar a este método en un estado no válido, se transfiere el objeto al <estado em>Error</em>.</p></td></tr tr td><<>prepare </p></td td>><{Initialized, Stopped}</p></td td<>>{Idle, Prepared, Started, Paused>, PlaybackCompleted, Error}</p></td td<>>La invocación correcta de este método en un estado válido transfiere el objeto al <estado em Prepared</em.>> Al llamar a este método en un estado no válido, se produce una excepción IllegalStateException.</p></td></tr tr td><<>prepareAsync </p></td td>><{Initialized, Stopped}</p></td td<>>{Idle, Prepared, Started, Paused>, PlaybackCompleted, Error}</p></td td><>Correcto invocado de este método en un estado válido transfiere el objeto al <estado em Prepare</em.>> Al llamar a este método en un estado no válido, se produce una excepción IllegalStateException.</p></td></tr tr><td>><release </p></td td><>any </p></td td>{}<<>/p></td td>><After #release()
, no debe interactuar con el objeto . </p></td></tr tr><td>><reset </p></td td>><{Idle, Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted, Error}</p></td<>td td><>{}</p/td td<>>After #reset()
, el objeto se parece a crear.</p></td></tr tr td>><><seekTo </p></td td>><{Prepared, Started, Paused, PlaybackCompleted}</p></td td>><{Idle, Initialized, Stopped, Error}</p></td td><Correctamente invocado>de este método en un estado válido no cambia el estado. Al llamar a este método en un estado no válido, se transfiere el objeto al <estado em>Error</em> . </p></td></tr tr td><>><setAudioAttributes </p></td td><>{Idle, Initialized, Stopped, Prepared, Started, Paused, PlaybackCompleted}</p></td td>><{Error}</p></td td><>Correctamente invocado de este método no cambia el estado. Para que el tipo de atributos de audio de destino sea efectivo, se debe llamar a este método antes de prepare() o prepareAsync().</p></td></tr tr td>><><setAudioSessionId </p></td td>><{Idle}</p></td td>><{Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted, Error}</p></td td><>Este método debe llamarse en estado inactivo, ya que el identificador de sesión de audio debe conocerse antes de llamar a setDataSource. Llamarlo no cambia el estado del objeto. </p></td/tr tr td>>><><< setAudioStreamType (en desuso)</p></td td><>{Idle, Initialized, Stopped, Prepared, Started, Paused, PlaybackCompleted}</p></td td><>{Error}</p></td td>><La invocación correcta de este método no cambia el estado. Para que el tipo de secuencia de audio de destino sea efectivo, se debe llamar a este método antes de prepare() o prepareAsync().</p></td></tr tr td>><<>setAuxEffectSendLevel </p></td td>><any</p></td td>{}<></p></td td>><Llamar a este método no cambia el estado del objeto. </p></td></tr tr td><><>setDataSource </p></td td><>{Idle}</p></td td>><{Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted, Error}</p></td td<>>Successful invoke of this method in a valid state transfiere el objeto al <estado em>Initialized</em.> Al llamar a este método en un estado no válido, se produce una excepción IllegalStateException.</p></td></tr tr td>><<>setDisplay </p></td td>><any </p></td td>{}<></p></td td>><Este método se puede llamar en cualquier estado y llamarlo no cambia el estado del objeto. </p></td></tr tr<>td>><setSurface </p></td td><>any </p></td td>{}<<>/p></td td>><Este método se puede llamar en cualquier estado y llamarlo no cambia el estado del objeto. </p></td/tr tr><td>><setVideoScalingMode </p></td td><>{Initialized, Prepared, Started, Paused><, Stopped, PlaybackCompleted}</p></td td<>>{Idle, Error}</p></td td<>>Correctamente invocado de este método no cambia el estado.</p></td/tr tr><><td>setLooping </p></td td>><{Idle, Initialized, Stopped, Prepared, Started, Paused><, PlaybackCompleted}</p></td td>><{Error}</p></td td><>Successful invoke of this method in a valid state does not change the state. Al llamar a este método en un estado no válido, se transfiere el objeto al <estado em>Error</em>.</p></td></tr tr td>><<>isLooping </p></td td>><any </p></td td>{}<></p></td td>><Este método se puede llamar en cualquier estado y llamar a él no cambia el estado del objeto. </p></td></tr tr><td>><setOnBufferingUpdateListener </p></td td><>any </p></td td>{}<<>/p></td td>><Este método se puede llamar en cualquier estado y llamar a él no cambia el estado del objeto. </p></td></tr tr><td>><setOnCompletionListener </p></td td><>any </p></td td>{}<<>/p></td td>><Este método se puede llamar en cualquier estado y llamar a él no cambia el estado del objeto. </p></td></tr tr><td>><setOnErrorListener </p></td td><>any </p></td td>{}<<>/p></td td>><Este método se puede llamar en cualquier estado y llamarlo no cambia el estado del objeto. </p></td></tr tr><td>><setOnPreparedListener </p></td td><>any </p></td td>{}<<>/p></td td>><Este método se puede llamar en cualquier estado y llamar a él no cambia el estado del objeto. </p></td></tr tr<>td>><setOnSeekCompleteListener </p></td td>><any </p></td><td>{}</p></td td>><Este método se puede llamar en cualquier estado y llamar a él no cambia el estado del objeto. </p></td/tr tr><<>td>setPlaybackParams</p></td td>><{Initialized, Prepared, Started, Paused><, PlaybackCompleted, Error}</p></td td><>{Idle, Stopped}</p></td td><>Este método cambiará el estado en algunos casos, dependiendo de cuándo se llame. </p></td/tr tr td>><<>>< setScreenOnWhilePlaying</></td td>><any </p></td td>{}<></p></td td>><Este método se puede llamar en cualquier estado y llamar a él no cambia el estado del objeto. </p></td></tr tr><<>td>setVolume </p></td td><>{Idle, Initialized, Stopped, Prepared, Started, Started, Paused, PlaybackCompleted}</p></td td>><{Error}</p></td td><>Successful invoke of this method does not change the state. <tr><td>setWakeMode </p></td td>><any </p></td td>{}<<>/p></td td>><Este método se puede llamar en cualquier estado y llamarlo no cambia el estado del objeto.</p></td></tr tr td>><><start </p></td td><>{Prepared, Started, Paused, PlaybackCompleted}</p></td td><>{Idle, Initialized, Stopped, Error}</p></td td><>Successful invoke of this method in a valid state transfiere el objeto al <estado em Started</em.>> Al llamar a este método en un estado no válido, se transfiere el objeto al <estado em>Error</em>.</p></td></tr tr<>td>><stop </p></td td><>{Prepared, Started, Stopped, Paused, PlaybackCompleted}</p></td td>><{Idle, Initialized, Error}</p></td td<>>Successful invoke of this method in a valid state transfiere el objeto al <estado em>Stopped</em.> Al llamar a este método en un estado no válido, se transfiere el objeto al <estado em>Error</em>.</p></td></tr tr td>><<>getTrackInfo </p></td td><>{Prepared, Started, Stopped, Paused, PlaybackCompleted}</p></td td><>{Idle, Initialized, Error}</p></td td<>>La invocación correcta de este método no cambia el estado.</p></td/tr tr><><td>addTimedTextSource </p></td td><>{Prepared, Started, Stopped, Paused><, PlaybackCompleted}</p></td td<>>{Idle, Initialized, Error}</p></td td<>>La invocación correcta de este método no cambia el estado.</p></td></tr tr td>><<>selectTrack </p></td td><>{Prepared, Started, Stopped, Paused, PlaybackCompleted}</p></td td><>{Idle, Initialized, Error}</p></td td<>>La invocación correcta de este método no cambia el estado.</p></td></tr tr><td>><deselectTrack </p></td td><>{Prepared, Started, Stopped, Paused, PlaybackCompleted}</p></td td<>>{Idle, Initialized, Error}</p></td td<>>La invocación correcta de este método no cambia el estado.</p></td></tr>
</mesa>
"Permisos"><h3>Permissions</h3>
Es posible que deba declarar un elemento de permiso android.R.styleable#AndroidManifestUsesPermission <uses-permission>
de WAKE_LOCK correspondiente.
Esta clase requiere el android.Manifest.permission#INTERNET
permiso cuando se usa con contenido basado en red.
"Devoluciones de llamada"><h3>Devoluciones de llamada</h3>
Es posible que las aplicaciones quieran registrarse para eventos informativos y de error con el fin de informarse de alguna actualización de estado interna y posibles errores en tiempo de ejecución durante la reproducción o el streaming. El registro de estos eventos se realiza estableciendo correctamente los agentes de escucha adecuados (a través de llamadas a #setOnPreparedListener(OnPreparedListener) setOnPreparedListener
, #setOnVideoSizeChangedListener(OnVideoSizeChangedListener) setOnVideoSizeChangedListener
, #setOnSeekCompleteListener(OnSeekCompleteListener) setOnSeekCompleteListener
#setOnCompletionListener(OnCompletionListener) setOnCompletionListener
, #setOnBufferingUpdateListener(OnBufferingUpdateListener) setOnBufferingUpdateListener
, , #setOnInfoListener(OnInfoListener) setOnInfoListener
, , #setOnErrorListener(OnErrorListener) setOnErrorListener
etc.). Para recibir la devolución de llamada correspondiente asociada a estos agentes de escucha, las aplicaciones deben crear objetos MediaPlayer en un subproceso con su propio looper en ejecución (el subproceso principal de la interfaz de usuario tiene un bucle en ejecución de forma predeterminada).
Documentación de Java para android.media.MediaPlayer
.
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.
Constructores
MediaPlayer() |
Constructor predeterminado. |
MediaPlayer(Context) |
Constructor predeterminado con contexto. |
MediaPlayer(IntPtr, JniHandleOwnership) |
Constructor utilizado al crear representaciones administradas de objetos JNI; llamado por el tiempo de ejecución. |
Campos
MediaErrorIo |
Obsoletos.
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
MediaErrorMalformed |
Obsoletos.
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
MediaErrorTimedOut |
Obsoletos.
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
MediaErrorUnsupported |
Obsoletos.
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
MediaMimetypeTextSubrip |
Tipo MIME para el contenedor SubRip (SRT). |
VideoScalingModeScaleToFit |
Obsoletos.
Especifica un modo de escalado de vídeo. |
VideoScalingModeScaleToFitWithCropping |
Obsoletos.
Especifica un modo de escalado de vídeo. |
Propiedades
AudioSessionId |
Devuelve el identificador de sesión de audio. -o bien- Establece el identificador de sesión de audio. |
Class |
Devuelve la clase en tiempo de ejecución de este |
CurrentPosition |
Obtiene la posición de reproducción actual. |
Duration |
Obtiene la duración del archivo. |
Handle |
Identificador de la instancia de Android subyacente. (Heredado de Object) |
IsPlaying |
Comprueba si mediaPlayer está reproduciendo. |
JniIdentityHashCode |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. (Heredado de Object) |
JniPeerMembers |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
Looping |
Comprueba si MediaPlayer está en bucle o no. -o bien- Establece que el reproductor esté en bucle o que no sea bucle. |
Metrics |
Devuelve datos de métricas sobre el reproductor actual. |
PeerReference |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. (Heredado de Object) |
PlaybackParams |
Obtiene los parámetros de reproducción, que contienen la velocidad de reproducción actual. -o bien- Establece la velocidad de reproducción mediante |
PreferredDevice |
Devuelve la salida seleccionada especificada por |
RoutedDevice |
Devuelve una |
SyncParams |
Obtiene el modo de sincronización de A/V. -o bien- Establece el modo de sincronización A/V. |
ThresholdClass |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. |
ThresholdType |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. |
Timestamp |
Obtiene la posición de reproducción actual como . |
VideoHeight |
Devuelve el alto del vídeo. |
VideoWidth |
Devuelve el ancho del vídeo. |
Métodos
AddOnRoutingChangedListener(IAudioRoutingOnRoutingChangedListener, Handler) |
Agrega un |
AddTimedTextSource(Context, Uri, String) |
Agrega un archivo de origen de texto temporal externo (URI). |
AddTimedTextSource(FileDescriptor, Int64, Int64, String) |
Agrega un archivo de texto temporal externo (FileDescriptor). |
AddTimedTextSource(FileDescriptor, String) |
Agrega un archivo de origen de texto temporal externo (FileDescriptor). |
AddTimedTextSource(String, String) |
Agrega un archivo de origen de texto temporal externo. |
AttachAuxEffect(Int32) |
Adjunta un efecto auxiliar al jugador. |
ClearOnMediaTimeDiscontinuityListener() |
Borra el agente de escucha establecido previamente con |
ClearOnSubtitleDataListener() |
Borra el agente de escucha establecido previamente con |
Clone() |
Crea y devuelve una copia de este objeto. (Heredado de Object) |
Create(Context, Int32) |
Método de conveniencia para crear un objeto MediaPlayer para un identificador de recurso determinado. |
Create(Context, Int32, AudioAttributes, Int32) |
El mismo método |
Create(Context, Uri) |
Método de conveniencia para crear un objeto MediaPlayer para un URI determinado. |
Create(Context, Uri, ISurfaceHolder) |
Método de conveniencia para crear un objeto MediaPlayer para un URI determinado. |
Create(Context, Uri, ISurfaceHolder, AudioAttributes, Int32) |
El mismo método |
CreateVolumeShaper(VolumeShaper+Configuration) |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
DeselectTrack(Int32) |
Anule la selección de una pista. |
Dispose() |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. (Heredado de Object) |
Dispose(Boolean) |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. (Heredado de Object) |
Equals(Object) |
Indica si algún otro objeto es "igual a" este. (Heredado de Object) |
GetDrmInfo() |
Recupera la información de DRM asociada al origen actual. |
GetDrmPropertyString(String) |
Lea un valor de propiedad string del complemento del motor DRM, dada la cadena de nombre de propiedad. |
GetHashCode() |
Devuelve un valor de código hash del objeto. (Heredado de Object) |
GetKeyRequest(Byte[], Byte[], String, MediaDrmKeyType, IDictionary<String,String>) |
Se produce un intercambio de solicitud o respuesta de claves entre la aplicación y un servidor de licencias para obtener o liberar claves usadas para descifrar el contenido cifrado. |
GetSelectedTrack(MediaTrackType) |
Devuelve el índice de la pista de audio, vídeo o subtítulo seleccionada actualmente para la reproducción, El valor devuelto es un índice en la matriz devuelta por |
GetTrackInfo() |
Devuelve una matriz de información de seguimiento. |
JavaFinalize() |
Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto . (Heredado de Object) |
Notify() |
Activa un único subproceso que está esperando en el monitor de este objeto. (Heredado de Object) |
NotifyAll() |
Activa todos los subprocesos que están esperando en el monitor de este objeto. (Heredado de Object) |
Pause() |
Pausa la reproducción. |
Prepare() |
Prepara el reproductor para la reproducción, sincrónicamente. |
PrepareAsync() |
Prepara el reproductor para la reproducción, de forma asincrónica. |
PrepareDrm(UUID) |
Prepara el DRM para el origen actual |
ProvideKeyResponse(Byte[], Byte[]) |
La aplicación recibe una respuesta clave del servidor de licencias y, a continuación, se proporciona al complemento del motor DRM mediante provideKeyResponse. |
Release() |
Libera los recursos asociados a este objeto MediaPlayer. |
ReleaseDrm() |
Libera la sesión DRM. |
RemoveOnRoutingChangedListener(IAudioRoutingOnRoutingChangedListener) |
Quita un objeto |
Reset() |
Restablece el objeto MediaPlayer a su estado no inicializado. |
RestoreKeys(Byte[]) |
Restaure las claves sin conexión persistentes en una nueva sesión. |
SeekTo(Int32) |
Busca la posición de tiempo especificada. |
SeekTo(Int64, MediaPlayerSeekMode) |
Mueve el medio a la posición de tiempo especificada teniendo en cuenta el modo especificado. |
SelectTrack(Int32) |
Selecciona una pista. |
SetAudioAttributes(AudioAttributes) |
Establece los atributos de audio para este Objeto MediaPlayer. |
SetAudioStreamType(Stream) |
Establece el tipo de secuencia de audio para este MediaPlayer. |
SetAuxEffectSendLevel(Single) |
Establece el nivel de envío del reproductor en el efecto auxiliar adjunto. |
SetDataSource(AssetFileDescriptor) |
Establece el origen de datos (AssetFileDescriptor) que se va a usar. |
SetDataSource(Context, Uri) |
Establece el origen de datos como un URI de contenido. |
SetDataSource(Context, Uri, IDictionary<String,String>) |
Establece el origen de datos como un URI de contenido. |
SetDataSource(Context, Uri, IDictionary<String,String>, IList<HttpCookie>) |
Establece el origen de datos como un URI de contenido. |
SetDataSource(FileDescriptor) |
Establece el origen de datos (FileDescriptor) que se va a usar. |
SetDataSource(FileDescriptor, Int64, Int64) |
Establece el origen de datos (FileDescriptor) que se va a usar. |
SetDataSource(MediaDataSource) |
Establece el origen de datos (MediaDataSource) que se va a usar. |
SetDataSource(String) |
Establece el origen de datos (ruta de acceso de archivo o dirección URL http/rtsp) que se va a usar. |
SetDataSourceAsync(AssetFileDescriptor) |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
SetDataSourceAsync(Context, Uri) |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
SetDataSourceAsync(Context, Uri, IDictionary<String,String>) |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
SetDataSourceAsync(Context, Uri, IDictionary<String,String>, IList<HttpCookie>) |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
SetDataSourceAsync(FileDescriptor) |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
SetDataSourceAsync(FileDescriptor, Int64, Int64) |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
SetDataSourceAsync(MediaDataSource) |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
SetDataSourceAsync(String) |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
SetDisplay(ISurfaceHolder) |
Establece el objeto |
SetDrmPropertyString(String, String) |
Establezca un valor de propiedad string del complemento del motor DRM. |
SetHandle(IntPtr, JniHandleOwnership) |
Establece la propiedad Handle. (Heredado de Object) |
SetNextMediaPlayer(MediaPlayer) |
Establezca mediaPlayer para que se inicie cuando este Objeto MediaPlayer termine de reproducirse (i. |
SetOnBufferingUpdateListener(MediaPlayer+IOnBufferingUpdateListener) |
Registre una devolución de llamada que se invocará cuando haya cambiado el estado del búfer de una secuencia de red. |
SetOnCompletionListener(MediaPlayer+IOnCompletionListener) |
Registre una devolución de llamada que se invocará cuando se haya alcanzado el final de un origen multimedia durante la reproducción. |
SetOnDrmConfigHelper(MediaPlayer+IOnDrmConfigHelper) |
Registre una devolución de llamada que se va a invocar para la configuración del objeto DRM antes de crear la sesión. |
SetOnDrmInfoListener(MediaPlayer+IOnDrmInfoListener) |
Registre una devolución de llamada que se invocará cuando se conozca la información de DRM. |
SetOnDrmInfoListener(MediaPlayer+IOnDrmInfoListener, Handler) |
Registre una devolución de llamada que se invocará cuando se conozca la información de DRM. |
SetOnDrmPreparedListener(MediaPlayer+IOnDrmPreparedListener) |
Registre una devolución de llamada que se invocará cuando se prepare el objeto DRM. |
SetOnDrmPreparedListener(MediaPlayer+IOnDrmPreparedListener, Handler) |
Registre una devolución de llamada que se invocará cuando se prepare el objeto DRM. |
SetOnErrorListener(MediaPlayer+IOnErrorListener) |
Registre una devolución de llamada que se invocará cuando se haya producido un error durante una operación asincrónica. |
SetOnInfoListener(MediaPlayer+IOnInfoListener) |
Registre una devolución de llamada que se invocará cuando haya disponible una información o advertencia. |
SetOnMediaTimeDiscontinuityListener(MediaPlayer+IOnMediaTimeDiscontinuityListener) |
Establece el agente de escucha que se va a invocar cuando se encuentra una discontinuidad de tiempo multimedia. |
SetOnMediaTimeDiscontinuityListener(MediaPlayer+IOnMediaTimeDiscontinuityListener, Handler) |
Establece el agente de escucha que se va a invocar cuando se encuentra una discontinuidad de tiempo multimedia. |
SetOnPreparedListener(MediaPlayer+IOnPreparedListener) |
Registre una devolución de llamada que se invocará cuando el origen multimedia esté listo para su reproducción. |
SetOnSeekCompleteListener(MediaPlayer+IOnSeekCompleteListener) |
Registre una devolución de llamada que se invocará cuando se haya completado una operación de búsqueda. |
SetOnSubtitleDataListener(MediaPlayer+IOnSubtitleDataListener) |
Establece el agente de escucha que se va a invocar cuando una pista de subtítulos tiene nuevos datos disponibles. |
SetOnSubtitleDataListener(MediaPlayer+IOnSubtitleDataListener, Handler) |
Establece el agente de escucha que se va a invocar cuando una pista de subtítulos tiene nuevos datos disponibles. |
SetOnTimedMetaDataAvailableListener(MediaPlayer+IOnTimedMetaDataAvailableListener) |
Registre una devolución de llamada que se invocará cuando una pista seleccionada tenga metadatos de tiempo disponibles. |
SetOnTimedTextListener(MediaPlayer+IOnTimedTextListener) |
Registre una devolución de llamada que se invocará cuando un texto con tiempo esté disponible para mostrarse. |
SetOnVideoSizeChangedListener(MediaPlayer+IOnVideoSizeChangedListener) |
Registre una devolución de llamada que se invocará cuando se conozca o actualice el tamaño del vídeo. |
SetPreferredDevice(AudioDeviceInfo) |
Especifica un dispositivo de audio (a través de un |
SetScreenOnWhilePlaying(Boolean) |
Controlar si debemos usar surfaceHolder adjunto para mantener la pantalla mientras se está produciendo la reproducción de vídeo. |
SetSurface(Surface) |
Establece el objeto |
SetVideoScalingMode(VideoScalingMode) |
Establece el modo de escalado de vídeo. |
SetVolume(Single, Single) |
Establece el volumen en este reproductor. |
SetWakeMode(Context, WakeLockFlags) |
Establezca el comportamiento de administración de energía de bajo nivel para este MediaPlayer. |
Start() |
Inicia o reanuda la reproducción. |
Stop() |
Detiene la reproducción después de iniciar o pausar la reproducción. |
ToArray<T>() |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. (Heredado de Object) |
ToString() |
Devuelve una representación de cadena del objeto. (Heredado de Object) |
UnregisterFromRuntime() |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. (Heredado de Object) |
Wait() |
Hace que el subproceso actual espere hasta que se despierta, normalmente por ser em notificado/em> o <em>interrumpido</em>.<>< (Heredado de Object) |
Wait(Int64) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. (Heredado de Object) |
Wait(Int64, Int32) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. (Heredado de Object) |
Eventos
BufferingUpdate |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
Completion |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
DrmInfoEvent |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
DrmPrepared |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
Error |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
Info |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
MediaTimeDiscontinuity |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
Prepared |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
RoutingChanged |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
SeekComplete |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
SubtitleData |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
TimedMetaDataAvailable |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
TimedText |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
VideoSizeChanged |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
Implementaciones de interfaz explícitas
IJavaPeerable.Disposed() |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. (Heredado de Object) |
IJavaPeerable.DisposeUnlessReferenced() |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. (Heredado de Object) |
IJavaPeerable.Finalized() |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. (Heredado de Object) |
IJavaPeerable.JniManagedPeerState |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. (Heredado de Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. (Heredado de Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. (Heredado de Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. (Heredado de Object) |
Métodos de extensión
JavaCast<TResult>(IJavaObject) |
Realiza una conversión de tipos comprobados en tiempo de ejecución de Android. |
JavaCast<TResult>(IJavaObject) |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |
GetJniTypeName(IJavaPeerable) |
La clase MediaPlayer se puede usar para controlar la reproducción de archivos y secuencias de audio/vídeo. |