Share via


MediaPlayer Clase

Definición

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
MediaPlayer
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 deben 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 una sola punta 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 siguientes estados:

<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 se encuentra 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 . Se trata de un error de programación para invocar métodos como #getCurrentPosition(), , #getVideoHeight()#getDuration(), #getVideoWidth(), #setAudioAttributes(AudioAttributes), #setLooping(boolean), #start()#stop()#seekTo(long, int)#setVolume(float, float)#pause()#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 interno del reproductor y el estado del objeto permanece sin cambios; pero si se llama a estos métodos justo después #reset()de , el motor del reproductor interno 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 los recursos adquiridos, como la memoria y los códecs. Una vez que haya llamado #releasea , 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 varias razones, 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, la notificación de errores y la recuperación es 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 de reproductor interno invoca un método OnErrorListener.onError() proporcionado por el usuario si se ha registrado un onErrorListener de antemano a través de #setOnErrorListener(android.media.MediaPlayer.OnErrorListener). <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 interno del reproductor.</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 #setDataSource(FileDescriptor, long, long), o #setDataSource(MediaDataSource) 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/li/ul>><</li li><>Un objeto MediaPlayer debe entrar primero en el <estado em>Prepared</em> antes de que se pueda 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 se devuelve la llamada al método, o una llamada a #prepareAsync() (asincrónica) que primero transfiere el objeto a em <Prepare</em.>> estado después de que se devuelva la llamada (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 completa el trabajo de preparación. Cuando la preparación se completa o cuando #prepare() se devuelve la llamada, el motor de 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 un objeto MediaPlayer está en 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 el <estado em>Prepared</em>, las propiedades como el volumen de audio/sonido, screenOnWhilePlaying, el bucle se puede ajustar invocando los métodos de conjunto correspondientes.</li/ul><<>/li li>><Para iniciar la reproducción, #start() se debe llamar a . Después de #start() 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 en el <estado em>Started</em> , el motor de reproductor interno llama a un usuario proporcionado OnBufferingUpdateListener.onBufferingUpdate() método de devolución de llamada si un OnBufferingUpdateListener se ha registrado de antemano a través #setOnBufferingUpdateListener(OnBufferingUpdateListener)de . 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>Playback 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 el <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 La llamada a /li>><no tiene ningún efecto en un objeto MediaPlayer que ya está en estado <em>Paused</em>.<#pause()/li/ul><<>/li><li>Calling #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() que se llame a o #prepareAsync() para establecer el objeto MediaPlayer en el <estado em>Prepared</em> de nuevo.</li La llamada a /li>><no tiene ningún efecto en un objeto MediaPlayer que ya está en estado <em>Stopped</em>.<#stop()/li/ul><<>/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 de reproductor interno llama a un usuario proporcionado por el usuario OnSeekComplete.onSeekComplete() si onSeekCompleteListener se ha registrado de antemano a través de #setOnSeekCompleteListener(OnSeekCompleteListener).</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 de reproducción actual real 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 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 ha establecido 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 de .#setOnCompletionListener(OnCompletionListener) 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/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>attachAuxEffect </p></td td><td>{Initialized, Preparado, iniciado, en pausa, detenido, PlaybackCompleted}</p></td td><>{Idle, Error}</p/><><< td td><>Este método debe llamarse después de setDataSource. Al 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><>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>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><>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>><><getVideoWidth </p></td td><>{Idle, Initialized, Prepared, Started, Paused><, Stopped, PlaybackCompleted}</p></td td>><{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>><isPlaying </p></td td>><{Idle, Initialized, Prepared, Started, Paused><, Stopped, PlaybackCompleted}</p></td td>><{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><><>pause </p></td td>><{Started, Paused, PlaybackCompleted}</p></td td{Idle, Initialized, Prepared, Stopped, Error}</p></td td><>Correctamente invocado 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<>>Correctamente invocado 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<>>Correctamente 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<>{}<>/p></td td<>>After #reset(), el objeto es similar a crearse.</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><>La invocación correcta 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. Al 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><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<>>Correctamente invocado de este método en un estado válido 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 td<>>La invocación correcta de este método no cambia el estado.</p></td></tr tr td><>><setLooping </p></td td><>{Idle, Initialized, Stopped, Prepared, Started, Started, Paused, PlaybackCompleted}</p></td td>><{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><>isLooping </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>><<>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 llamarlo 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 llamar a él 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><>{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 llamarlo 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><>Correctamente invocado de este método no cambia el estado. <tr><td>setWakeMode </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>><><start </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 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<>>Correctamente invocado de este método en un estado válido 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 tenga que declarar un elemento de permiso android.R.styleable#AndroidManifestUsesPermission &lt;uses-permission&gt; 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 para 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#setOnBufferingUpdateListener(OnBufferingUpdateListener) setOnBufferingUpdateListener#setOnCompletionListener(OnCompletionListener) setOnCompletionListener, , #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 Project y que se usan según los términos Creative Commons 2.5 Attribution License.

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 entorno 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 la sesión de audio.

Class

Devuelve la clase en tiempo de ejecución de este Objectobjeto .

(Heredado de Object)
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 PlaybackParams.

PreferredDevice

Devuelve la salida seleccionada especificada por #setPreferredDevice.

RoutedDevice

Devuelve un elemento que AudioDeviceInfo identifica el enrutamiento actual de esta nota de MediaPlayer: la consulta solo es válida si mediaPlayer se está reproduciendo actualmente.

SyncParams

Obtiene el modo de sincronización de A/V. -o bien- Establece el modo de sincronización de 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 .MediaTimestamp

VideoHeight

Devuelve el alto del vídeo.

VideoWidth

Devuelve el ancho del vídeo.

Métodos

AddOnRoutingChangedListener(IAudioRoutingOnRoutingChangedListener, Handler)

Agrega para AudioRouting.OnRoutingChangedListener recibir notificaciones de cambios de enrutamiento en este objeto MediaPlayer.

AddTimedTextSource(Context, Uri, String)

Agrega un archivo de origen de texto temporal externo (URI).

AddTimedTextSource(FileDescriptor, Int64, Int64, String)

Agrega un archivo de texto temporizador 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#setOnMediaTimeDiscontinuityListener(OnMediaTimeDiscontinuityListener) o #setOnMediaTimeDiscontinuityListener(OnMediaTimeDiscontinuityListener, Handler)

ClearOnSubtitleDataListener()

Borra el agente de escucha establecido previamente con #setOnSubtitleDataListener(OnSubtitleDataListener) o #setOnSubtitleDataListener(OnSubtitleDataListener, Handler).

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, int) de fábrica que pero le permite especificar los atributos de audio y el identificador de sesión que usará la nueva instancia de MediaPlayer.

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 #create(Context, Uri, SurfaceHolder) de fábrica que pero le permite especificar los atributos de audio y el identificador de sesión que usará la nueva instancia de MediaPlayer.

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 clave 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()y se puede usar en llamadas a #selectTrack(int) o #deselectTrack(int).

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 la 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 AudioRouting.OnRoutingChangedListener objeto que se ha agregado anteriormente para recibir notificaciones de reenrutamiento.

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 de este objeto MediaPlayer.

SetAudioStreamType(Stream)

Establece el tipo de secuencia de audio para este objeto 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 SurfaceHolder objeto que se va a usar para mostrar la parte de vídeo del medio.

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 finalice la reproducción (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 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 cronomeados disponibles.

SetOnTimedTextListener(MediaPlayer+IOnTimedTextListener)

Registre una devolución de llamada que se invocará cuando un texto con tiempo esté disponible para su presentación.

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 AudioDeviceInfo objeto) para enrutar la salida de este objeto MediaPlayer.

SetScreenOnWhilePlaying(Boolean)

Controla si debemos usar el SurfaceHolder adjunto para mantener la pantalla en mientras se está produciendo la reproducción de vídeo.

SetSurface(Surface)

Establece el Surface objeto que se va a usar como receptor para la parte de vídeo del medio.

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 despierte, 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.

Se aplica a