Share 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 de et tous les accès aux instances de lecteur doivent se trouver sur le même thread. Si vous inscrivez des rappels, le thread doit avoir un Looper.

Les sujets abordés ici sont : 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 et des flux audio/vidéo est géré en tant que machine à états. Le diagramme suivant montre le cycle de vie et les états d’un objet MediaPlayer piloté par les opérations de contrôle de lecture prises en charge. Les ovales représentent les états dans lesquels un objet MediaPlayer peut résider. 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 les appels de méthode synchrones, tandis que ceux avec une double tête de flèche représentent les appels de méthode asynchrones.

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

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

<ul>li Lorsqu’un objet MediaPlayer est simplement créé à l’aide new de ou après #reset() est appelé, il est dans l’état <em>Idle</em> ; et après #release() est appelé, il est à l’état <em>End</em>.>< Entre ces deux états se trouve le 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() est appelé. Il s’agit d’une erreur de programmation pour appeler des méthodes telles que #getCurrentPosition(), #getDuration()#getVideoHeight(), #getVideoWidth(), #setAudioAttributes(AudioAttributes), #seekTo(long, int)#setVolume(float, float)#start()#pause()#setLooping(boolean)#stop()ou #prepare()#prepareAsync() dans l’état <em>Idle</em> dans 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 onErrorListener.onError() fournie par l’utilisateur 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 à un instance MediaPlayer pour empêcher son nettoyage de la mémoire. Si un instance MediaPlayer est collecté par la mémoire, #release est appelé, 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 un instance pour libérer les ressources acquises, telles que la mémoire et les codecs. Une fois que vous avez appelé #release, vous ne devez plus interagir avec le instance libéré. <Les objets MediaPlayer li>créés à l’aide new de sont à 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 à l’état <em>Prepared</em> si la création à l’aide create de la méthode réussit. </li></ul></li><>Li En général, certaines opérations de contrôle de lecture peuvent échouer pour 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, etc. Par conséquent, le signalement et la récupération des erreurs 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 passe à l’état <em>Error</em> (sauf comme 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 après l’erreur, #reset() peut être appelé pour restaurer l’objet à son <état em>Idle</em>.<></li><li>Il est recommandé de demander à votre application d’inscrire un OnErrorListener pour rechercher les notifications d’erreurs provenant du moteur de lecteur interne.</li><IllegalStateException>est levée pour empêcher les erreurs de programmation telles que l’appel #prepare()de , #prepareAsync()ou l’une des méthodes surchargées setDataSource dans un état non valide. </li>/ul></li>><Calling #setDataSource(FileDescriptor), ou #setDataSource(String), ou #setDataSource(Context, Uri), ou #setDataSource(FileDescriptor, long, long), ou #setDataSource(MediaDataSource) transfère un objet MediaPlayer à l’état <em>Idle</em> à l’état <em>Initialized</em>.< <ul><li>Une exception IllegalStateException est levée si setDataSource() est appelé dans un autre état.</li><li>C’est une bonne pratique de programmation à toujours rechercher IllegalArgumentException et IOException qui peut être levée à partir des méthodes surchargéessetDataSource.</li></ul></li><>Un objet MediaPlayer doit d’abord entrer l’état <em>Prepared</em> avant de pouvoir démarrer la lecture. <ul><li>Il existe deux façons (synchrone ou asynchrone) d’atteindre l’état <em>Prepared</em> : un appel à #prepare() (synchrone) qui transfère l’objet à l’état <em>Prepared</em> une fois l’appel de méthode retourné, ou un appel à #prepareAsync() (asynchrone) qui transfère d’abord l’objet à l’em <>Prepare</em> l’état après le retour de l’appel (qui se produit presque immédiatement) tandis que le moteur de joueur interne continue à travailler sur le reste du travail de préparation jusqu’à ce que le travail de préparation soit terminé. Une fois la préparation terminée ou lorsque #prepare() l’appel est retourné, le moteur de lecteur interne appelle 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>Preparing</em> est un état temporaire, et que le comportement d’appel d’une méthode avec effet secondaire alors qu’un objet MediaPlayer se trouve dans l’état <em>Preparing</em> n’est pas défini.</li><li>Une exception IllegalStateException est levée si #prepare() ou #prepareAsync() est appelé dans un autre état.</li><li>Dans l’état <em>Prepared</em> , les propriétés telles que le volume audio/son, screenOnWhilePlaying, la boucle peuvent être ajustées en appelant les méthodes set correspondantes.</li></ul></li><li>Pour démarrer la lecture, #start() vous devez appeler. Une #start() fois retourné avec succès, l’objet MediaPlayer est à l’état <em>Started</em> . #isPlaying() peut être appelé pour tester si l’objet MediaPlayer est à l’état <em>Started</em> . <ul>li Dans l’état <em>Started</em>, le moteur de lecteur interne appelle la méthode de rappel OnBufferingUpdateListener.onBufferingUpdate() fournie par l’utilisateur si un onBufferingUpdateListener a été inscrit au préalable via #setOnBufferingUpdateListener(OnBufferingUpdateListener).>< Ce rappel permet aux applications de suivre la mise en mémoire tampon status lors du streaming audio/vidéo.</li><li>Calling #start() n’a aucun effet sur un objet MediaPlayer qui est déjà à l’état <em>Started</em>.</li></ul></li><li>La lecture 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() retourne, l’objet MediaPlayer passe à l’état <em>Paused</em> . Notez que la transition de l’état <em>Started</em> à l’état <em>Paused</em> et vice versa se produit de manière asynchrone dans le moteur de lecteur. Cela peut prendre un certain temps avant que l’état ne soit mis à jour dans les appels à #isPlaying(), et il peut s’agir d’un nombre de secondes dans le cas de contenu diffusé en continu. <ul><li>Appel #start() à la reprise de la lecture pour un objet MediaPlayer suspendu, et la position de lecture reprise est identique à l’endroit où il a été suspendu. Lorsque l’appel à #start() retourne, l’objet MediaPlayer mis en pause revient à l’état <em>Started</em>.</li><li>Calling #pause() n’a aucun effet sur un objet MediaPlayer qui est déjà à l’état <em>Paused</em>.</li>/ul></li><>Calling #stop() arrête la lecture et provoque l’entrée d’un MediaPlayer dans l’état <em>Started</em>, <em>Paused</em>, <em>Prepared </em> ou <em>PlaybackCompleted</em> à entrer l’état <em>Stopped</em>.< <ul><li>Une fois dans l’état <em>Stopped</em>, la lecture ne peut pas être démarrée tant #prepare() que ou #prepareAsync() ne sont pas appelés pour définir à nouveau l’état em>Prepared</em> à l’objet <MediaPlayer.</li><li>Calling #stop() n’a aucun effet sur un objet MediaPlayer qui est déjà à 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) soit retourné immédiatement, l’opération de recherche réelle peut prendre un certain temps, en particulier pour le flux 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 peut également être appelé dans les autres états, tels que <#seekTo(long, int) em>Prepared</em>, <em>Paused</em> et <em>PlaybackCompleted </em> state. Lorsque #seekTo(long, int) est appelé dans ces états, une image vidéo s’affiche si le flux contient de la 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 doivent suivre la progression de la lecture.</li></ul></li><lorsque>la lecture atteint la fin du flux, la lecture se termine. <ul>li Si le mode de boucle a été défini sur <var>true</var> avec #setLooping(boolean), l’objet MediaPlayer doit rester à 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 indique que l’objet est maintenant à l’état <em> PlaybackCompleted</em> .</li><li>Dans l’état <em>PlaybackCompleted</em> , 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 Nom de méthode /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><>{Idle, Error}</p/><<>><<>td><Td Cette méthode doit être appelée après setDataSource. L’appeler ne modifie pas l’état de l’objet. </p></td></tr><tr><td>getAudioSessionId </p></td><any>< /p></td><td>{}</p></td><td>Cette méthode peut être appelée dans n’importe quel état et l’appeler ne modifie pas l’état de l’objet. </p></td></tr><tr><td>getCurrentPosition </p></td><>{Idle, Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td>><{Error}</p></td><td>L’appel réussi 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>getDuration </p></td><>{Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td>><{Idle, Initialized, Error}</p></td><>L’appel réussi 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><>{Idle, Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td<>> td{Error}</p></td><td>L’appel réussi 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>getVideoWidth </p></td><>{Idle, Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td>><{Error}</p></td><td>L’appel réussi 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>isPlaying </p></td>>< td{Idle, Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td>><{Error}</p></td><td>L’appel réussi 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>pause </p></td>><{Started, Paused, PlaybackCompleted}</p></td><>{Idle, Initialized, Prepared, Stopped, Error}</p></td>><L’appel réussi de cette méthode dans un état valide 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><>L’appel réussi de cette méthode dans un état valide transfère l’objet à l’état <em>Prepared</em.> L’appel de cette méthode dans un état non valide lève une exception IllegalStateException.</p></td></tr><td><>prepareAsync </p></td>><{Initialized, Stopped}</p></td><td>{Idle, Prepared, Started, Paused, PlaybackCompleted, Error}</p></td>><L’appel réussi 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><td>release </p></td><td>any </p></td><td>{}</p></td><td>Après #release(), vous ne devez pas interagir avec l’objet . </p></td></tr><tr><td>reset </p></td><> td{Idle, Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted, Error}</p></td><td>{}</p></td><td>Après #reset(), l’objet est comme en cours de création.</p></td></tr><td><>seekTo </p></td<>>{Prepared, Started, Paused, PlaybackCompleted}</p></td>><{Idle, Initialized, Stopped, Error}</p></td><>L’appel réussi 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>setAudioAttributes </p></td>><{Idle, Initialized, Stopped, Prepared, Started, Paused, PlaybackCompleted}</p></td<>>{Error}</p></td><>Td L’appel réussi de cette méthode ne modifie 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><>{Idle}</p></td<>td>{Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted, Error}</p></td><>td Cette méthode doit être appelée dans un état inactif, car l’ID de session audio doit être connu avant d’appeler setDataSource. L’appeler ne modifie pas l’état de l’objet. </p></td></tr><tr><td>setAudioStreamType (deprecated)</p></td>><{Idle, Initialized, Stopped, Prepared, Started, Paused, PlaybackCompleted}</p></td<>>{Error}/p/td td{Error}</p></td><Td>L’appel réussi de cette méthode 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><any></p></td><td>{}</p></td><l’appel>de cette méthode ne modifie pas l’état de l’objet. </p></td></tr><tr><td>setDataSource </p></td>><{Idle}</p></td><>{Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted, Error}</p></td>><L’appel réussi 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><any>< /p></td><td>{}</p></td><td>Td Cette méthode peut être appelée dans n’importe quel état et l’appeler ne modifie pas l’état de l’objet. </p></td></tr><tr><td>setSurface </p></td><any>< /p></td><td>{}</p></td><td>td Cette méthode peut être appelée dans n’importe quel état et l’appeler ne modifie pas l’état de l’objet. </p></td></tr><tr><td>setVideoScalingMode </p></td>><{Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td><>{Idle, Error}</p></td<>td>L’appel réussi de cette méthode ne modifie pas l’état.</p></td></tr><tr><td>SetLooping </p></td><>{Idle, Initialized, Stopped, Prepared, Started, Paused, PlaybackCompleted}</p></td>><{Error}</p></td><Td>L’appel réussi 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>isLooping </p></td><td>any </p></td><td>{}</p></td><td>Cette méthode peut être appelée dans n’importe quel état et l’appeler ne modifie pas l’état de l’objet. </p></td></tr><tr><td>setOnBufferingUpdateListener </p></td><any>< /p></td><td>{}</p></td><Td>Cette méthode peut être appelée dans n’importe quel état et l’appeler ne modifie pas l’état de l’objet. </p></td></tr><tr><td>setOnCompletionListener </p></td><any>< /p></td><td>{}</p></td><td>Cette méthode peut être appelée dans n’importe quel état et l’appeler ne modifie pas l’état de l’objet. </p></td></tr><td><>setOnErrorListener </p></td<>any>/p></td><td>{}</<p></td><td>Cette méthode peut être appelée dans n’importe quel état et l’appeler ne modifie pas l’état de l’objet. </p></td></tr><tr><td>setOnPreparedListener </p></td><any>/p></td<>{}<> td/<p></td><>Td Cette méthode peut être appelée dans n’importe quel état et l’appeler ne modifie pas l’état de l’objet. </p></td></tr><tr><td>setOnSeekCompleteListener </p></td><any>< /p></td><td>{}</p></td><Td>Cette méthode peut être appelée dans n’importe quel état et l’appeler ne modifie pas l’état de l’objet. </p></td></tr><><td>setPlaybackParams</p></td><>{Initialized, Prepared, Started, Paused, PlaybackCompleted, Error}</p></td>><{Idle, Stopped}</p></td><TD>Cette méthode change d’état dans certains cas, en fonction du moment où elle est appelée. </p></td></tr><tr><td>setScreenOnWhilePlaying</></td><any>< /p></td><td>{}</p></td><td>Cette méthode peut être appelée dans n’importe quel état et l’appeler ne modifie pas l’état de l’objet. </p></td></tr><td><>setVolume </p></td><td>{Inactif, Initialisé, Arrêté, Préparé, Démarré, Suspendu, PlaybackCompleted}</p></td><>{Error}</p></td><Td>L’appel réussi de cette méthode ne modifie pas l’état. <tr><td>setWakeMode </p></td><td>any </p></td><td>{}</p></td><td>Cette méthode peut être appelée dans n’importe quel état et l’appeler 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><>L’appel réussi de cette méthode dans un état valide 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>{Préparé, Démarré, Arrêté, Suspendu, PlaybackCompleted}</p></td>><{Inactif, Initialisé, Erreur}</p></td>><L’appel réussi de cette méthode dans un état valide transfère l’objet à l’état <em>Arrêté</em.> L’appel de cette méthode dans un état non valide transfère l’objet à l’état <em>Error</em>.</p></td></tr><td><>getTrackInfo </p></td<>td>{Préparé, Démarré, Arrêté, Suspendu, PlaybackCompleted}</p></td><>{Inactif, Initialisé, Erreur}</p></td<>>L’appel réussi de cette méthode ne modifie pas l’état.</p></td></tr>><<td>addTimedTextSource </p></td><> td{Préparé, Démarré, Arrêté, Suspendu, PlaybackCompleted}</p></td><>{Inactif, Initialized, Error}</p></td<>>L’appel réussi de cette méthode ne modifie pas l’état.</p></td></tr><tr><td>selectTrack </p></td><td>{Préparé, Démarré, Arrêté, Suspendu, PlaybackCompleted}</p></td>><{Inactif, Initialisé, Error}</p></td<>>L’appel réussi de cette méthode ne modifie pas l’état.</p></td></tr><td><>deselectTrack </p></td><>{Préparé, Démarré, Arrêté, Suspendu, PlaybackCompleted}</p></td><>{Inactif, Initialized, Error}</p></td<>>L’appel réussi de cette méthode ne modifie pas l’état.</p></td></tr>

</Table>

« Autorisations »>< h3>Autorisations</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 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 d’erreurs d’exécution possibles pendant la lecture ou la diffusion en continu. L’inscription pour ces événements s’effectue en définissant correctement les écouteurs appropriés (par le biais d’appels à #setOnPreparedListener(OnPreparedListener) setOnPreparedListener, #setOnSeekCompleteListener(OnSeekCompleteListener) setOnSeekCompleteListener#setOnVideoSizeChangedListener(OnVideoSizeChangedListener) setOnVideoSizeChangedListener, , #setOnCompletionListener(OnCompletionListener) setOnCompletionListener, #setOnBufferingUpdateListener(OnBufferingUpdateListener) setOnBufferingUpdateListener, #setOnInfoListener(OnInfoListener) setOnInfoListener#setOnErrorListener(OnErrorListener) setOnErrorListener, etc.). Pour recevoir le rappel respectif associé à ces écouteurs, les applications doivent créer des objets MediaPlayer sur un thread avec son propre Looper en cours d’exécution (main thread d’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 Android Open Source Android Open Source Project et utilisés selon les termes décrits dans la 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é 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-jacent.

(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 est en boucle ou en non-boucle. -ou- Définit le lecteur pour qu’il soit en boucle ou non en boucle.

Metrics

Retourne les données des 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 de PlaybackParams.

PreferredDevice

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

RoutedDevice

Retourne un AudioDeviceInfo identifiant le routage actuel de cette note MediaPlayer : la requête n’est valide que si le 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

Obtenez 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 un AudioRouting.OnRoutingChangedListener pour recevoir des notifications de modifications de routage sur ce MediaPlayer.

AddTimedTextSource(Context, Uri, String)

Ajoute un fichier source de texte tempé externe (URI).

AddTimedTextSource(FileDescriptor, Int64, Int64, String)

Ajoute un fichier texte temporné externe (FileDescriptor).

AddTimedTextSource(FileDescriptor, String)

Ajoute un fichier source de texte temporné externe (FileDescriptor).

AddTimedTextSource(String, String)

Ajoute un fichier source de texte tempé 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 #create(Context, int) mais qui vous permet de 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 #create(Context, Uri, SurfaceHolder) mais qui vous permet de 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 la valeur de la propriété String d’un 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 les 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ée dans les appels à #selectTrack(int) ou #deselectTrack(int).

GetTrackInfo()

Retourne un tableau d’informations de suivi.

JavaFinalize()

Appelé par le récupérateur de mémoire 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 sur le moniteur de cet objet.

(Hérité de Object)
NotifyAll()

Réveille tous les threads en attente sur le moniteur de cet objet.

(Hérité de Object)
Pause()

Interrompt 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é ajouté précédemment 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 d’heure spécifiée.

SeekTo(Int64, MediaPlayerSeekMode)

Déplace le média vers la position temporelle 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 à 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 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 le SurfaceHolder à utiliser pour afficher la partie vidéo du média.

SetDrmPropertyString(String, String)

Définissez la valeur de la propriété String d’un plug-in de moteur DRM.

SetHandle(IntPtr, JniHandleOwnership)

Définit la propriété Handle.

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

Définissez MediaPlayer pour qu’il démarre lorsque ce MediaPlayer a terminé la lecture (i.

SetOnBufferingUpdateListener(MediaPlayer+IOnBufferingUpdateListener)

Inscrivez un rappel à appeler lorsque la status 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/un avertissement est disponible.

SetOnMediaTimeDiscontinuityListener(MediaPlayer+IOnMediaTimeDiscontinuityListener)

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

SetOnMediaTimeDiscontinuityListener(MediaPlayer+IOnMediaTimeDiscontinuityListener, Handler)

Définit l’écouteur à appeler lorsqu’une interruption 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 est terminée.

SetOnSubtitleDataListener(MediaPlayer+IOnSubtitleDataListener)

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

SetOnSubtitleDataListener(MediaPlayer+IOnSubtitleDataListener, Handler)

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

SetOnTimedMetaDataAvailableListener(MediaPlayer+IOnTimedMetaDataAvailableListener)

Inscrivez un rappel à appeler lorsqu’une piste sélectionnée dispose de métadonnées chrono timed disponibles.

SetOnTimedTextListener(MediaPlayer+IOnTimedTextListener)

Inscrivez un rappel à appeler lorsqu’un texte chronoté 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 le SurfaceHolder attaché pour maintenir l’écran allumé pendant la lecture vidéo.

SetSurface(Surface)

Définit le Surface à 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 après le démarrage ou la suspension de la lecture.

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 l'objet sous forme de chaîne.

(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/em> ou <em>interrompt</em>.<>

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

Fait en sorte que le thread actuel attende qu’il soit réveillé, généralement en étant <averti par em/em> ou <em>interruption</em>, ou jusqu’à ce qu’un certain temps réel s’est écoulé.<>

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

Fait en sorte que le thread actuel attende qu’il soit réveillé, généralement en étant <averti par em/em> ou <em>interruption</em>, ou jusqu’à ce qu’un certain temps réel s’est écoulé.<>

(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é 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 à