Partager via


MediaPlayer Classe

Définition

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

[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
Héritage
MediaPlayer
Attributs
Implémente

Remarques

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

MediaPlayer n’est pas thread-safe. La création et l’accès à toutes les instances de lecteur doivent se trouver sur le même thread. Si vous inscrivez des rappels, le thread doit avoir un Looper.

Les rubriques abordées ici sont les suivantes : 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>

Pour plus d’informations sur l’utilisation de MediaPlayer, consultez le guide du développeur de lecture multimédia .

</Div>

« StateDiagram"><h3>State Diagram</h3>

Le contrôle de lecture des fichiers audio/vidéo et des flux est géré en tant qu’ordinateur d’état. Le diagramme suivant montre le cycle de vie et les états d’un objet MediaPlayer pilotés par les opérations de contrôle de lecture prises en charge. Les ovales représentent les états dans utilisant un objet MediaPlayer. Les arcs représentent les opérations de contrôle de lecture qui pilotent la transition de l’état de l’objet. Il existe deux types d’arcs. Les arcs avec une seule tête de flèche représentent des appels de méthode synchrones, tandis que ceux avec une double flèche de tête représentent des appels de méthode asynchrones.

<img src=".. /.. /.. /images/mediaplayer_state_diagram.gif » alt="MediaPlayer State diagram » border="0 » />

À partir de ce diagramme d’état, vous pouvez voir qu’un objet MediaPlayer a les états suivants :

<ul>li Quand un objet MediaPlayer vient d’être créé à l’aide new ou après #reset() est appelé, il se trouve dans l’état <em>Idle</em> ; et après #release() l’appel, il se trouve dans l’état <em>End</em>.>< Entre ces deux états, il s’agit du cycle de vie de l’objet MediaPlayer. <ul><li>Il existe une différence subtile mais importante entre un objet MediaPlayer nouvellement construit et l’objet MediaPlayer après #reset() son appel. Il s’agit d’une erreur de programmation pour appeler des méthodes telles que #getCurrentPosition(), #pause()#setAudioAttributes(AudioAttributes)#setLooping(boolean)#getDuration()#getVideoHeight()#setVolume(float, float)#getVideoWidth(), #start()#stop(), , , #seekTo(long, int), #prepare() ou #prepareAsync() dans l’état <em>Idle</em> pour les deux cas. Si l’une de ces méthodes est appelée juste après la construction d’un objet MediaPlayer, la méthode de rappel fournie par l’utilisateur OnErrorListener.onError() ne sera pas appelée par le moteur de lecteur interne et l’état de l’objet reste inchangé ; mais si ces méthodes sont appelées juste après #reset(), la méthode de rappel fournie par l’utilisateur OnErrorListener.onError() est appelée par le moteur de lecteur interne et l’objet est transféré à l’état <em>Error</em> . </li li><>Vous devez conserver une référence à une instance MediaPlayer pour l’empêcher d’être collectée par la mémoire. Si une instance MediaPlayer est collectée par la mémoire, #release elle est appelée, ce qui entraîne l’arrêt de toute lecture en cours. <li>Vous devez appeler #release() une fois que vous avez terminé d’utiliser une instance pour libérer des ressources acquises, telles que la mémoire et les codecs. Une fois que vous avez appelé #release, vous ne devez plus interagir avec l’instance publiée. <Les objets li>MediaPlayer créés à l’aide <new de l’état em>Idle/em>, tandis que ceux créés avec l’une des méthodes pratiques create surchargées sont <em>NOT</em> dans l’état <em>Idle<</em>. En fait, les objets sont dans l’état <em>Prepare</em> si la création à l’aide create de la méthode réussit. </li></ul></li><>En général, certaines opérations de contrôle de lecture peuvent échouer en raison de diverses raisons, telles que le format audio/vidéo non pris en charge, l’audio/vidéo mal entrelacé, la résolution trop élevée, le délai d’expiration du streaming et les autres. Par conséquent, la création de rapports d’erreurs et la récupération constituent une préoccupation importante dans ces circonstances. Parfois, en raison d’erreurs de programmation, l’appel d’une opération de contrôle de lecture dans un état non valide peut également se produire. Dans toutes ces conditions d’erreur, le moteur de lecteur interne appelle une méthode OnErrorListener.onError() fournie par l’utilisateur si un onErrorListener a été inscrit au préalable via #setOnErrorListener(android.media.MediaPlayer.OnErrorListener). <ul><li>Il est important de noter qu’une fois qu’une erreur se produit, l’objet MediaPlayer entre dans l’état <em>Error</em> (sauf indiqué ci-dessus), même si un écouteur d’erreur n’a pas été inscrit par l’application.</li li><>Pour réutiliser un objet MediaPlayer qui se trouve dans l’état <em> Error</em> et récupérer à partir de l’erreur, #reset() peut être appelé pour restaurer l’objet à son <état em>Idle</em.<>/li li><>Il est recommandé de programmer votre application pour inscrire un OnErrorListener pour rechercher les notifications d’erreur à partir du moteur de lecteur interne.</li><li>IllegalStateException est levée pour empêcher les erreurs de programmation telles que l’appel #prepare(), #prepareAsync()ou l’une des méthodes surchargées setDataSource dans un état non valide. </li>/ul></li>><calling#setDataSource(FileDescriptor), or#setDataSource(String)#setDataSource(Context, Uri), or, or, or#setDataSource(FileDescriptor, long, long)#setDataSource(MediaDataSource), ou transfère un objet MediaPlayer dans l’état <em>Idle</em> à l’état <em>Initialized</em>.< <ul><li>An IllegalStateException est levée si setDataSource() est appelé dans un autre état.</li li><>Il est judicieux de regarder toujours à l’extérieur IllegalArgumentException et IOException qui peut être levée à partir des méthodes surchargées.<setDataSourceL’objet /li></ul<>/li><>A MediaPlayer doit d’abord entrer l’état em>Prepare</em> avant que la <lecture puisse être démarrée. <ul>li Il existe deux façons (synchrones et asynchrones) d’atteindre l’état <em>Prepare</em> : soit un appel à #prepare() (synchrone) qui transfère l’objet à l’état <em>Prepare</em> une fois l’appel de méthode retourné, ou un appel à #prepareAsync() (asynchrone) qui transfère d’abord l’objet à <em>Prepare</em>>< état après le retour de l’appel (qui se produit presque immédiatement) tandis que le moteur de joueur interne continue de travailler sur le reste du travail de préparation jusqu’à ce que le travail de préparation se termine. Lorsque la préparation se termine ou lorsque #prepare() l’appel est retourné, le moteur de lecteur interne appelle ensuite une méthode de rappel fournie par l’utilisateur, onPrepared() de l’interface OnPreparedListener, si un onPreparedListener est inscrit au préalable via #setOnPreparedListener(android.media.MediaPlayer.OnPreparedListener).</li li>><Il est important de noter que l’état <em>Preparation</em> est un état temporaire et que le comportement d’appel de n’importe quelle méthode avec effet secondaire alors qu’un objet MediaPlayer se trouve dans l’état <em>Preparation</em> n’est pas défini.</li li>><An IllegalStateException est levée si #prepare() ou #prepareAsync() est appelé dans un autre état.</li li>><While dans l’état em>Prepare</em>, propriétés telles que le <volume audio/audio, screenOnWhilePlaying, la boucle peut être ajustée en appelant les méthodes set correspondantes.</li></ul></li><Pour>démarrer la lecture, #start() doit être appelé. Une fois #start() retourné, l’objet MediaPlayer est dans l’état <em>Started</em> . #isPlaying() peut être appelé pour tester si l’objet MediaPlayer est dans l’état <em>Started</em> . <ul><li>While in the <em>Started</em> state, the internal player engine call a user provider OnBufferingUpdateListener.onBufferingUpdate() method if a OnBufferingUpdateListener a été inscrit au préalable via #setOnBufferingUpdateListener(OnBufferingUpdateListener). Ce rappel permet aux applications de suivre l’état de mise en mémoire tampon lors de la diffusion en continu audio/vidéo.</li li>><Calling #start() n’a aucun effet sur un objet MediaPlayer qui est déjà dans l’état <em>Started</em.<>La lecture /li></ul<>/li><>peut être suspendue et arrêtée, et la position de lecture actuelle peut être ajustée. La lecture peut être suspendue via #pause(). Lorsque l’appel à #pause() renvoyer, l’objet MediaPlayer entre dans l’état <em>Paused</em> . Notez que la transition de l’état <em>Started</em> à l’état <em>Suspendu</em> et vice versa se produit de manière asynchrone dans le moteur de lecteur. Il peut prendre un certain temps avant que l’état soit mis à jour dans les appels à #isPlaying(), et il peut s’agir d’un certain nombre de secondes dans le cas de contenu diffusé en continu. <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. Lorsque l’appel à #start() renvoyer, l’objet MediaPlayer suspendu revient à l’état <em>Started</em>.</li li>><Calling #pause() n’a aucun effet sur un objet MediaPlayer qui est déjà dans l’état <em>Paused</em.<>/li></ul></li><>Calling #stop() arrête la lecture et provoque l’arrêt d’un MediaPlayer dans l’em>< Started</em>, <em>Paused</em>, <em>Prepared </em ou <em>> PlaybackCompleted</em> state to enter the <em>Stopped</em> state. <ul>li Once in the <em>Stopped</em> state, la lecture ne peut pas être démarrée tant qu’elle #prepare() n’est pas #prepareAsync() appelée pour définir à nouveau l’objet MediaPlayer sur l’état <em>Prepare</em>.<></li li>><Calling #stop() n’a aucun effet sur un objet MediaPlayer qui est déjà dans l’état <em>Stopped</em.<>/li>/ul></li><>La position de lecture peut être ajustée avec un appel à #seekTo(long, int).< <ul><li>Bien que l’appel asynchronisé #seekTo(long, int) retourne immédiatement, l’opération de recherche réelle peut prendre un certain temps, en particulier pour le streaming audio/vidéo. Une fois l’opération de recherche réelle terminée, le moteur de lecteur interne appelle un utilisateur fourni à OnSeekComplete.onSeekComplete() si un OnSeekCompleteListener a été inscrit au préalable via #setOnSeekCompleteListener(OnSeekCompleteListener).</li li>><Veuillez noter que #seekTo(long, int) vous pouvez également appeler dans les autres états, tels que <em>Prepared</em>, <em>Paused</em> et <em>PlaybackCompleted </em> state. Lorsqu’il #seekTo(long, int) est appelé dans ces états, une trame vidéo s’affiche si le flux a une vidéo et que la position demandée est valide. </li li>><En outre, la position de lecture actuelle réelle peut être récupérée avec un appel à #getCurrentPosition(), ce qui est utile pour les applications telles qu’un lecteur de musique qui doit suivre la progression de la lecture.</li></ul></li><>Lorsque la lecture atteint la fin du flux, la lecture se termine. <ul>li If the looping mode was set to <var>true</var> with #setLooping(boolean), l’objet MediaPlayer doit rester dans l’état <em>Started</em>.<></li li><>Si le mode de bouclage a été défini sur <var>false </var>, le moteur de lecteur appelle une méthode de rappel fournie par l’utilisateur, OnCompletion.onCompletion(), si un OnCompletionListener est inscrit au préalable via .#setOnCompletionListener(OnCompletionListener) L’appel du rappel signale que l’objet est maintenant dans l’état <> em PlaybackCompleted</em>.</li li>><While in the <em>PlaybackCompleted</em> state, l’appel #start() peut redémarrer la lecture à partir du début de la source audio/vidéo.</li></ul>

« Valid_and_Invalid_States"><h3>États valides et non valides</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>< tr><<>td attachAuxEffect </p></td><> td>{Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td><td>{Idle, Error}</p/><>><< td td><>Cette méthode doit être appelée après setDataSource. L’appel ne modifie pas l’état de l’objet. </p></td></tr tr><tr>><td getAudioSessionId </p></td td><>any </p></td<>td>{}</p></td td td><>Cette méthode peut être appelée dans n’importe quel état et l’appel ne modifie pas l’état de l’objet. </p></td></tr tr><><td>getCurrentPosition </p></td td>><{Idle, Initialized, Prepare, Started, Paused, Stopped, PlaybackCompleted}</p></td>><{Error}</p></td td><td>Réussite de l’appel de cette méthode dans un état valide ne change pas l’état. L’appel de cette méthode dans un état non valide transfère l’objet à l’état <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>><Réussite de l’appel de cette méthode dans un état valide ne modifie pas l’état. L’appel de cette méthode dans un état non valide transfère l’objet à l’état <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><td>Réussite de l’appel de cette méthode dans un état valide ne change pas l’état. L’appel de cette méthode dans un état non valide transfère l’objet à l’état <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><td>Réussite de l’appel de cette méthode dans un état valide ne change pas l’état. L’appel de cette méthode dans un état non valide transfère l’objet à l’état <em>Error</em> . </p></td></tr tr><><tr isPlaying <>/p></td td>><{Idle, Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td>><{Error}</p></td td><Réussite>de l’appel de cette méthode dans un état valide ne change pas l’état. L’appel de cette méthode dans un état non valide transfère l’objet à l’état <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>><Réussie invoke of this method in a valid state transfère l’objet à l’état <em>Paused</em.> L’appel de cette méthode dans un état non valide transfère l’objet à l’état <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><>Réussie invoke of this method in a valid state transfère l’objet à l’état <em>Prepare</em.> L’appel de cette méthode dans un état non valide lève une exception IllegalStateException.</p></td></tr tr><<>td>prepareAsync </p></td td><>{Initialized, Stopped}</p></td td>><{Idle, Prepared, Started, Paused, PlaybackCompleted, Error}</p></td td>><Réussite de l’appel de cette méthode dans un état valide transfère l’objet à l’état <em>Prepare</em.> L’appel de cette méthode dans un état non valide lève une exception IllegalStateException.</p></td></tr><tr><release>< /p></td td>><any </p></td td></><td>><td>{}< After #release(), vous ne devez pas interagir avec l’objet. </p></td></tr><tr><td>reset </p></td td>><{Idle, Initialized, Prepare, Started, Paused, Stopped, PlaybackCompleted, Error}</p></td><td>{}</><td<>td>After #reset(), l’objet est semblable à être créé.</p></td></tr tr><td>><seekTo </p></td td>><{Prepared, Started, Paused, PlaybackCompleted}</p></td>><{Idle, Initialized, Stopped, Error}</p></td td><>Successful invoke of this method in a valid state ne change pas l’état. L’appel de cette méthode dans un état non valide transfère l’objet à l’état <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>Successful invoke of this method ne change pas l’état. Pour que le type d’attributs audio cible devienne effectif, cette méthode doit être appelée avant prepare() ou prepareAsync().</p></td></tr tr><><td>setAudioSessionId </p></td td>><{Idle}</p></td><td>{Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted, Error}</p></td td><td>Cette méthode doit être appelée en état inactif, car l’ID de session audio doit être connu avant d’appeler setDataSource. L’appel ne modifie pas l’état de l’objet. </p></td></tr tr><<>td>setAudioStreamType (déconseillé)</p></td<>td>{Idle, Initialized, Stopped, Prepared, Started, Paused, PlaybackCompleted}</p></td td><> td{Error}</p></td><td>Successful invoke of this method ne modifie pas l’état. Pour que le type de flux audio cible devienne effectif, cette méthode doit être appelée avant prepare() ou prepareAsync().</p></td></tr tr><<>td>setAuxEffectSendLevel </p></td td><>any</p></td td>{}<<>/p></td><>td Appelant cette méthode ne modifie pas l’état de l’objet. </p></td></tr><tr><td>setDataSource </p></td td><>{Idle}</p></td><td>{Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted, Error}</p></td><td>Réussite de l’appel de cette méthode dans un état valide transfère l’objet à l’état <em>Initialized</em.> L’appel de cette méthode dans un état non valide lève une exception IllegalStateException.</p></td></tr tr><<>td>setDisplay </p></td td>><any </p></td><td>{}</><td><>Cette méthode peut être appelée dans n’importe quel état et l’appel ne modifie pas l’état de l’objet. </p></td></tr tr><<>td setSurface <>/p></td td><>any </p></td><td>{}</p></td td><Td>Cette méthode peut être appelée dans n’importe quel état et l’appel ne modifie pas l’état de l’objet. </p></td></tr tr><<>td>setVideoScalingMode </p></td td><>{Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td>><{Idle, Error}</p></td td><>Successful invoke of this method ne change pas l’état.</p></td></tr tr><><td>setLooping </p></td td>><{Idle, Initialized, Stopped, Prepared, Started, Paused, PlaybackCompleted}</p></td>><{Error}</p></td td><Réussite>de l’appel de cette méthode dans un état valide ne modifie pas l’état. L’appel de cette méthode dans un état non valide transfère l’objet à l’état <em>Error</em>.</p></td></tr tr<>tr><td>isLooping </p></td td><>any </p></td><td>{}</><td td><Td>Cette méthode peut être appelée dans n’importe quel état et l’appel ne modifie pas l’état de l’objet. </p></td></tr tr><<>td>setOnBufferingUpdateListener </p></td><td>any </p></td><td>{}</p></td td>><Cette méthode peut être appelée dans n’importe quel état et l’appel ne modifie pas l’état de l’objet. </p></td></tr tr><><td>setOnCompletionListener </p></td td>><any </p></td><td>{}</p></td td>><Td Cette méthode peut être appelée dans n’importe quel état et l’appel ne modifie pas l’état de l’objet. </p></td></tr tr><><td>setOnErrorListener </p></td td>><any </p></td><td>{}</p></td td td/td><td>Cette méthode peut être appelée dans n’importe quel état et l’appel ne modifie pas l’état de l’objet. </p></td></tr tr><<>td>setOnPreparedListener </p></td td><>any </p></td td>{}<<>/p></td td>><Td Cette méthode peut être appelée dans n’importe quel état et l’appel ne modifie pas l’état de l’objet. </p></td></tr tr><<>td>setOnSeekCompleteListener </p></td><td>any </p></td><td>{}</td/><td><td>Cette méthode peut être appelée dans n’importe quel état et l’appel ne modifie pas l’état de l’objet. </p></td></tr><tr><td>setPlaybackParams</p></td td>><{Initialized, Prepared, Started, Paused, PlaybackCompleted, Error}</p></td>><{Idle, Stopped}</p></td td td><Td>Cette méthode change d’état dans certains cas, en fonction du moment où elle est appelée. </p></td></tr tr><><tdscreenOnWhilePlaying<>//><td td>><any </p></td<>td>{}</p></td td Td>><Cette méthode peut être appelée dans n’importe quel état et l’appel ne modifie pas l’état de l’objet. </p></td></tr tr><><td>setVolume </p></td td>><{Idle, Initialized, Stopped, Prepared, Started, Paused, PlaybackCompleted}</p></td><> td{Error}</p></td td>><Réussite de l’appel de cette méthode ne change pas l’état. <tr><td>setWakeMode </p></td td>><any </p></td td>{}<<>/p></td td>><Td Cette méthode peut être appelée dans n’importe quel état et l’appel ne modifie pas l’état de l’objet.</p></td></tr><tr><td>start </p></td td>><{Prepared, Started, Paused, PlaybackCompleted}</p></td>><{Idle, Initialized, Stopped, Error}</p></td td>><Réussie invoke of this method in a valid state transfère l’objet à l’état <em>Started</em.> L’appel de cette méthode dans un état non valide transfère l’objet à l’état <em>Error</em>.</p></td></tr><tr><td>stop </p></td td><>{Prepared, Started, Stopped, Paused, PlaybackCompleted}</p></td>><{Idle, Initialized, Error}</p></td td><td>Successful invoke of this method in a valid state transfère l’objet à l’état <em>Stopped</em.> L’appel de cette méthode dans un état non valide transfère l’objet à l’état <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>><Réussite de l’appel de cette méthode ne modifie pas l’état.</p></td></tr tr><<>td>addTimedTextSource </p></td td>><{Prepared, Started, Stopped, Paused, PlaybackCompleted}</p></td td><>{Idle, Initialized, Error}</p></td><td>Réussite de l’appel de cette méthode ne modifie pas l’état.</p></td></tr tr><<>td>selectTrack </p></td td><>{Prepared, Started, Stopped, Paused, PlaybackCompleted}</p></td><>{Idle, Initialized, Error}</p></td<>td>Réussite de l’appel de cette méthode ne modifie pas l’état.</p></td></tr tr><<>tdselectTrack>< /p></td td>><{Préparé, Démarré, Arrêté, Suspendu, PlaybackCompleted}</p></td td><>{Idle, Initialized, Error}</p></td<>td>Réussite de l’appel de cette méthode ne modifie pas l’état.</p></td></tr>

</table>

« Autorisations"><h3>Permissions</h3>

Il peut être nécessaire de déclarer un élément d’autorisation android.R.styleable#AndroidManifestUsesPermission &lt;uses-permission&gt; WAKE_LOCK correspondant.

Cette classe nécessite l’autorisation android.Manifest.permission#INTERNET lorsqu’elle est utilisée avec du contenu basé sur le réseau.

« Rappels"><h3>rappels</h3>

Les applications peuvent souhaiter s’inscrire à des événements d’information et d’erreur afin d’être informées de certaines mises à jour d’état internes et des erreurs d’exécution possibles lors de la lecture ou de la diffusion en continu. L’inscription pour ces événements est effectuée en définissant correctement les écouteurs appropriés (via des appels à #setOnPreparedListener(OnPreparedListener) setOnPreparedListener, , #setOnSeekCompleteListener(OnSeekCompleteListener) setOnSeekCompleteListener#setOnVideoSizeChangedListener(OnVideoSizeChangedListener) setOnVideoSizeChangedListener, #setOnCompletionListener(OnCompletionListener) setOnCompletionListener, #setOnBufferingUpdateListener(OnBufferingUpdateListener) setOnBufferingUpdateListener, , #setOnInfoListener(OnInfoListener) setOnInfoListener, , #setOnErrorListener(OnErrorListener) setOnErrorListeneretc). Pour recevoir le rappel respectif associé à ces écouteurs, les applications sont requises pour créer des objets MediaPlayer sur un thread avec son propre looper en cours d’exécution (le thread principal de l’interface utilisateur par défaut a un looper en cours d’exécution).

Documentation Java pour android.media.MediaPlayer.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

Constructeurs

MediaPlayer()

Constructeur par défaut.

MediaPlayer(Context)

Constructeur par défaut avec contexte.

MediaPlayer(IntPtr, JniHandleOwnership)

Constructeur utilisé lors de la création de représentations managées d’objets JNI ; appelée par le runtime.

Champs

MediaErrorIo
Obsolète.

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

MediaErrorMalformed
Obsolète.

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

MediaErrorTimedOut
Obsolète.

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

MediaErrorUnsupported
Obsolète.

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

MediaMimetypeTextSubrip

Type MIME pour le conteneur SubRip (SRT).

VideoScalingModeScaleToFit
Obsolète.

Spécifie un mode de mise à l’échelle vidéo.

VideoScalingModeScaleToFitWithCropping
Obsolète.

Spécifie un mode de mise à l’échelle vidéo.

Propriétés

AudioSessionId

Retourne l’ID de session audio. -ou- Définit l’ID de session audio.

Class

Retourne la classe runtime de ce Object.

(Hérité de Object)
CurrentPosition

Obtient la position de lecture actuelle.

Duration

Obtient la durée du fichier.

Handle

Handle de l’instance Android sous-jacente.

(Hérité de Object)
IsPlaying

Vérifie si MediaPlayer est en cours de lecture.

JniIdentityHashCode

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

(Hérité de Object)
JniPeerMembers

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

Looping

Vérifie si MediaPlayer effectue une boucle ou une non-boucle. -ou- Définit le lecteur comme bouclage ou sans boucle.

Metrics

Retournez des données de métriques sur le lecteur actuel.

PeerReference

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

(Hérité de Object)
PlaybackParams

Obtient les paramètres de lecture, contenant le taux de lecture actuel. -ou- Définit le taux de lecture à l’aide PlaybackParamsde .

PreferredDevice

Retourne la sortie sélectionnée spécifiée par #setPreferredDevice.

RoutedDevice

Retourne une AudioDeviceInfo identification du routage actuel de cette note MediaPlayer : la requête n’est valide que si MediaPlayer est en cours de lecture.

SyncParams

Obtient le mode de synchronisation A/V. -ou- Définit le mode de synchronisation A/V.

ThresholdClass

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

ThresholdType

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

Timestamp

Obtenir la position de lecture actuelle en tant que MediaTimestamp.

VideoHeight

Retourne la hauteur de la vidéo.

VideoWidth

Retourne la largeur de la vidéo.

Méthodes

AddOnRoutingChangedListener(IAudioRoutingOnRoutingChangedListener, Handler)

Ajoute une AudioRouting.OnRoutingChangedListener notification pour recevoir des notifications de routage sur ce MediaPlayer.

AddTimedTextSource(Context, Uri, String)

Ajoute un fichier source texte chronologique externe (URI).

AddTimedTextSource(FileDescriptor, Int64, Int64, String)

Ajoute un fichier texte chronologique externe (FileDescriptor).

AddTimedTextSource(FileDescriptor, String)

Ajoute un fichier source texte chronologique externe (FileDescriptor).

AddTimedTextSource(String, String)

Ajoute un fichier source texte chronologique externe.

AttachAuxEffect(Int32)

Attache un effet auxiliaire au joueur.

ClearOnMediaTimeDiscontinuityListener()

Efface l’écouteur précédemment défini avec #setOnMediaTimeDiscontinuityListener(OnMediaTimeDiscontinuityListener) ou #setOnMediaTimeDiscontinuityListener(OnMediaTimeDiscontinuityListener, Handler)

ClearOnSubtitleDataListener()

Efface l’écouteur précédemment défini avec #setOnSubtitleDataListener(OnSubtitleDataListener) ou #setOnSubtitleDataListener(OnSubtitleDataListener, Handler).

Clone()

Crée et retourne une copie de cet objet.

(Hérité de Object)
Create(Context, Int32)

Méthode pratique pour créer un MediaPlayer pour un ID de ressource donné.

Create(Context, Int32, AudioAttributes, Int32)

Même méthode de fabrique que celle qui vous permet de #create(Context, int) spécifier les attributs audio et l’ID de session à utiliser par la nouvelle instance MediaPlayer.

Create(Context, Uri)

Méthode pratique pour créer un MediaPlayer pour un URI donné.

Create(Context, Uri, ISurfaceHolder)

Méthode pratique pour créer un MediaPlayer pour un URI donné.

Create(Context, Uri, ISurfaceHolder, AudioAttributes, Int32)

Même méthode de fabrique que celle qui vous permet de #create(Context, Uri, SurfaceHolder) spécifier les attributs audio et l’ID de session à utiliser par la nouvelle instance MediaPlayer.

CreateVolumeShaper(VolumeShaper+Configuration)

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

DeselectTrack(Int32)

Désélectionnez une piste.

Dispose()

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

(Hérité de Object)
Dispose(Boolean)

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

(Hérité de Object)
Equals(Object)

Indique si un autre objet est « égal à » celui-ci.

(Hérité de Object)
GetDrmInfo()

Récupère les informations DRM associées à la source actuelle

GetDrmPropertyString(String)

Lisez une valeur de propriété string du plug-in de moteur DRM, en fonction de la chaîne de nom de propriété.

GetHashCode()

Retourne une valeur de code de hachage pour l'objet.

(Hérité de Object)
GetKeyRequest(Byte[], Byte[], String, MediaDrmKeyType, IDictionary<String,String>)

Un échange de demande/réponse de clé se produit entre l’application et un serveur de licences pour obtenir ou libérer des clés utilisées pour déchiffrer le contenu chiffré.

GetSelectedTrack(MediaTrackType)

Renvoie l’index de la piste audio, vidéo ou sous-titre actuellement sélectionnée pour la lecture, la valeur de retour est un index dans le tableau retourné par #getTrackInfo(), et peut être utilisé dans les appels vers #selectTrack(int) ou #deselectTrack(int).

GetTrackInfo()

Retourne un tableau d’informations de suivi.

JavaFinalize()

Appelé par le garbage collector sur un objet lorsque le garbage collection détermine qu’il n’y a plus de références à l’objet.

(Hérité de Object)
Notify()

Réveille un thread unique qui attend le moniteur de cet objet.

(Hérité de Object)
NotifyAll()

Réveille tous les threads qui attendent le moniteur de cet objet.

(Hérité de Object)
Pause()

Suspend la lecture.

Prepare()

Prépare le lecteur pour la lecture, de manière synchrone.

PrepareAsync()

Prépare le lecteur pour la lecture de manière asynchrone.

PrepareDrm(UUID)

Prépare la gestion des droits numériques pour la source actuelle

ProvideKeyResponse(Byte[], Byte[])

Une réponse clé est reçue du serveur de licences par l’application, puis elle est fournie au plug-in du moteur DRM à l’aide de provideKeyResponse.

Release()

Libère les ressources associées à cet objet MediaPlayer.

ReleaseDrm()

Libère la session DRM

RemoveOnRoutingChangedListener(IAudioRoutingOnRoutingChangedListener)

Supprime un AudioRouting.OnRoutingChangedListener qui a été précédemment ajouté pour recevoir des notifications de réacheminement.

Reset()

Réinitialise MediaPlayer à son état non initialisé.

RestoreKeys(Byte[])

Restaurez les clés hors connexion persistantes dans une nouvelle session.

SeekTo(Int32)

Recherche la position de temps spécifiée.

SeekTo(Int64, MediaPlayerSeekMode)

Déplace le média vers la position de temps spécifiée en tenant compte du mode donné.

SelectTrack(Int32)

Sélectionne une piste.

SetAudioAttributes(AudioAttributes)

Définit les attributs audio pour ce MediaPlayer.

SetAudioStreamType(Stream)

Définit le type de flux audio pour ce MediaPlayer.

SetAuxEffectSendLevel(Single)

Définit le niveau d’envoi du joueur sur l’effet auxiliaire attaché.

SetDataSource(AssetFileDescriptor)

Définit la source de données (AssetFileDescriptor) à utiliser.

SetDataSource(Context, Uri)

Définit la source de données en tant qu’URI de contenu.

SetDataSource(Context, Uri, IDictionary<String,String>)

Définit la source de données en tant qu’URI de contenu.

SetDataSource(Context, Uri, IDictionary<String,String>, IList<HttpCookie>)

Définit la source de données en tant qu’URI de contenu.

SetDataSource(FileDescriptor)

Définit la source de données (FileDescriptor) à utiliser.

SetDataSource(FileDescriptor, Int64, Int64)

Définit la source de données (FileDescriptor) à utiliser.

SetDataSource(MediaDataSource)

Définit la source de données (MediaDataSource) à utiliser.

SetDataSource(String)

Définit la source de données (chemin d’accès de fichier ou URL http/rtsp) à utiliser.

SetDataSourceAsync(AssetFileDescriptor)

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

SetDataSourceAsync(Context, Uri)

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

SetDataSourceAsync(Context, Uri, IDictionary<String,String>)

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

SetDataSourceAsync(Context, Uri, IDictionary<String,String>, IList<HttpCookie>)

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

SetDataSourceAsync(FileDescriptor)

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

SetDataSourceAsync(FileDescriptor, Int64, Int64)

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

SetDataSourceAsync(MediaDataSource)

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

SetDataSourceAsync(String)

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

SetDisplay(ISurfaceHolder)

Définit l’option SurfaceHolder à utiliser pour afficher la partie vidéo du média.

SetDrmPropertyString(String, String)

Définissez une valeur de propriété string du plug-in de moteur DRM.

SetHandle(IntPtr, JniHandleOwnership)

Définit la propriété Handle.

(Hérité de Object)
SetNextMediaPlayer(MediaPlayer)

Définissez MediaPlayer pour démarrer lorsque ce MediaPlayer termine la lecture (i.

SetOnBufferingUpdateListener(MediaPlayer+IOnBufferingUpdateListener)

Inscrivez un rappel à appeler lorsque l’état de la mémoire tampon d’un flux réseau a changé.

SetOnCompletionListener(MediaPlayer+IOnCompletionListener)

Inscrivez un rappel à appeler lorsque la fin d’une source multimédia a été atteinte pendant la lecture.

SetOnDrmConfigHelper(MediaPlayer+IOnDrmConfigHelper)

Inscrivez un rappel à appeler pour la configuration de l’objet DRM avant la création de la session.

SetOnDrmInfoListener(MediaPlayer+IOnDrmInfoListener)

Inscrivez un rappel à appeler lorsque les informations DRM sont connues.

SetOnDrmInfoListener(MediaPlayer+IOnDrmInfoListener, Handler)

Inscrivez un rappel à appeler lorsque les informations DRM sont connues.

SetOnDrmPreparedListener(MediaPlayer+IOnDrmPreparedListener)

Inscrivez un rappel à appeler lorsque l’objet DRM est préparé.

SetOnDrmPreparedListener(MediaPlayer+IOnDrmPreparedListener, Handler)

Inscrivez un rappel à appeler lorsque l’objet DRM est préparé.

SetOnErrorListener(MediaPlayer+IOnErrorListener)

Inscrivez un rappel à appeler lorsqu’une erreur s’est produite pendant une opération asynchrone.

SetOnInfoListener(MediaPlayer+IOnInfoListener)

Inscrivez un rappel à appeler lorsqu’une information/avertissement est disponible.

SetOnMediaTimeDiscontinuityListener(MediaPlayer+IOnMediaTimeDiscontinuityListener)

Définit l’écouteur à appeler lorsqu’une discontinuité de temps multimédia est rencontrée.

SetOnMediaTimeDiscontinuityListener(MediaPlayer+IOnMediaTimeDiscontinuityListener, Handler)

Définit l’écouteur à appeler lorsqu’une discontinuité de temps multimédia est rencontrée.

SetOnPreparedListener(MediaPlayer+IOnPreparedListener)

Inscrivez un rappel à appeler lorsque la source multimédia est prête pour la lecture.

SetOnSeekCompleteListener(MediaPlayer+IOnSeekCompleteListener)

Inscrivez un rappel à appeler lorsqu’une opération de recherche a été terminée.

SetOnSubtitleDataListener(MediaPlayer+IOnSubtitleDataListener)

Définit l’écouteur à appeler lorsqu’une piste de sous-titre a de nouvelles données disponibles.

SetOnSubtitleDataListener(MediaPlayer+IOnSubtitleDataListener, Handler)

Définit l’écouteur à appeler lorsqu’une piste de sous-titre a de nouvelles données disponibles.

SetOnTimedMetaDataAvailableListener(MediaPlayer+IOnTimedMetaDataAvailableListener)

Inscrivez un rappel à appeler lorsqu’une piste sélectionnée a des métadonnées chronométrées disponibles.

SetOnTimedTextListener(MediaPlayer+IOnTimedTextListener)

Inscrivez un rappel à appeler lorsqu’un texte chronométré est disponible pour l’affichage.

SetOnVideoSizeChangedListener(MediaPlayer+IOnVideoSizeChangedListener)

Inscrivez un rappel à appeler lorsque la taille de la vidéo est connue ou mise à jour.

SetPreferredDevice(AudioDeviceInfo)

Spécifie un périphérique audio (via un AudioDeviceInfo objet) pour acheminer la sortie de ce MediaPlayer.

SetScreenOnWhilePlaying(Boolean)

Déterminez si nous devons utiliser l’Espace réservé SurfaceHolder attaché pour conserver l’écran pendant que la lecture vidéo se produit.

SetSurface(Surface)

Définit la Surface valeur à utiliser comme récepteur pour la partie vidéo du média.

SetVideoScalingMode(VideoScalingMode)

Définit le mode de mise à l’échelle vidéo.

SetVolume(Single, Single)

Définit le volume sur ce lecteur.

SetWakeMode(Context, WakeLockFlags)

Définissez le comportement de gestion de l’alimentation de bas niveau pour ce MediaPlayer.

Start()

Démarre ou reprend la lecture.

Stop()

Arrête la lecture une fois la lecture démarrée ou suspendue.

ToArray<T>()

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

(Hérité de Object)
ToString()

Retourne une représentation de chaîne de l'objet.

(Hérité de Object)
UnregisterFromRuntime()

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

(Hérité de Object)
Wait()

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti par em ou><em>interrompu</em>.<>

(Hérité de Object)
Wait(Int64)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti< par> em>ou <em>interrompu/em>,< ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)
Wait(Int64, Int32)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti< par> em>ou <em>interrompu/em>,< ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)

Événements

BufferingUpdate

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

Completion

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

DrmInfoEvent

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

DrmPrepared

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

Error

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

Info

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

MediaTimeDiscontinuity

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

Prepared

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

RoutingChanged

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

SeekComplete

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

SubtitleData

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

TimedMetaDataAvailable

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

TimedText

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

VideoSizeChanged

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

Implémentations d’interfaces explicites

IJavaPeerable.Disposed()

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

(Hérité de Object)
IJavaPeerable.DisposeUnlessReferenced()

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

(Hérité de Object)
IJavaPeerable.Finalized()

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

(Hérité de Object)
IJavaPeerable.JniManagedPeerState

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

(Hérité de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

(Hérité de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

(Hérité de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

(Hérité de Object)

Méthodes d’extension

JavaCast<TResult>(IJavaObject)

Effectue une conversion de type vérifiée par le runtime Android.

JavaCast<TResult>(IJavaObject)

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

GetJniTypeName(IJavaPeerable)

La classe MediaPlayer peut être utilisée pour contrôler la lecture de fichiers et de flux audio/vidéo.

S’applique à