Langue

MediaParser Classe

Définition

Analyse les formats de conteneur multimédia et extrait des exemples multimédias et des métadonnées contenus.

[Android.Runtime.Register("android/media/MediaParser", ApiSince=30, DoNotGenerateAcw=true)]
public sealed class MediaParser : Java.Lang.Object
[<Android.Runtime.Register("android/media/MediaParser", ApiSince=30, DoNotGenerateAcw=true)>]
type MediaParser = class
    inherit Object
Héritage
MediaParser
Attributs

Remarques

Analyse les formats de conteneur multimédia et extrait des exemples multimédias et des métadonnées contenus.

Cette classe fournit l’accès à une batterie d’analyseurs de conteneur multimédia de bas niveau. Chaque instance de cette classe est associée à une implémentation d’analyseur multimédia spécifique qui convient à l’extraction à partir d’un format de conteneur multimédia spécifique. L’attribution d’implémentation de l’analyseur multimédia dépend de la méthode de fabrique (voir #create et #createByName) utilisée pour créer l’instance.

Les utilisateurs doivent implémenter les éléments suivants pour utiliser cette classe.

<ul><li>InputReader : fournit les octets du conteneur multimédia à analyser. <li>OutputConsumer : fournit un récepteur pour toutes les données et métadonnées extraites. </ul>

L’extrait de code suivant inclut un exemple d’utilisation :

MyOutputConsumer myOutputConsumer = new MyOutputConsumer();
            MyInputReader myInputReader = new MyInputReader("www.example.com");
            MediaParser mediaParser = MediaParser.create(myOutputConsumer);

            while (mediaParser.advance(myInputReader)) {}

            mediaParser.release();
            mediaParser = null;

L’extrait de code suivant fournit un exemple d’implémentation rudimentaire OutputConsumer qui extrait et publie tous les exemples vidéo :

class VideoOutputConsumer implements MediaParser.OutputConsumer {

                private byte[] sampleDataBuffer = new byte[4096];
                private byte[] discardedDataBuffer = new byte[4096];
                private int videoTrackIndex = -1;
                private int bytesWrittenCount = 0;

                &#64;Override
                public void onSeekMapFound(int i, &#64;NonNull MediaFormat mediaFormat) {
                  // Do nothing.
                }

                &#64;Override
                public void onTrackDataFound(int i, &#64;NonNull TrackData trackData) {
                  MediaFormat mediaFormat = trackData.mediaFormat;
                  if (videoTrackIndex == -1 &amp;&amp;
                      mediaFormat
                          .getString(MediaFormat.KEY_MIME, &#47;* defaultValue= *&#47; "")
                          .startsWith("video/")) {
                    videoTrackIndex = i;
                  }
                }

                &#64;Override
                public void onSampleDataFound(int trackIndex, &#64;NonNull InputReader inputReader)
                    throws IOException {
                  int numberOfBytesToRead = (int) inputReader.getLength();
                  if (videoTrackIndex != trackIndex) {
                    // Discard contents.
                    inputReader.read(
                        discardedDataBuffer,
                        &#47;* offset= *&#47; 0,
                        Math.min(discardDataBuffer.length, numberOfBytesToRead));
                  } else {
                    ensureSpaceInBuffer(numberOfBytesToRead);
                    int bytesRead = inputReader.read(
                        sampleDataBuffer, bytesWrittenCount, numberOfBytesToRead);
                    bytesWrittenCount += bytesRead;
                  }
                }

                &#64;Override
                public void onSampleCompleted(
                    int trackIndex,
                    long timeMicros,
                    int flags,
                    int size,
                    int offset,
                    &#64;Nullable CryptoInfo cryptoData) {
                  if (videoTrackIndex != trackIndex) {
                    return; // It's not the video track. Ignore.
                  }
                  byte[] sampleData = new byte[size];
                  int sampleStartOffset = bytesWrittenCount - size - offset;
                  System.arraycopy(
                      sampleDataBuffer,
                      sampleStartOffset,
                      sampleData,
                      &#47;* destPos= *&#47; 0,
                      size);
                  // Place trailing bytes at the start of the buffer.
                  System.arraycopy(
                      sampleDataBuffer,
                      bytesWrittenCount - offset,
                      sampleDataBuffer,
                      &#47;* destPos= *&#47; 0,
                      &#47;* size= *&#47; offset);
                  bytesWrittenCount = bytesWrittenCount - offset;
                  publishSample(sampleData, timeMicros, flags);
                }

               private void ensureSpaceInBuffer(int numberOfBytesToRead) {
                 int requiredLength = bytesWrittenCount + numberOfBytesToRead;
                 if (requiredLength &gt; sampleDataBuffer.length) {
                   sampleDataBuffer = Arrays.copyOf(sampleDataBuffer, requiredLength);
                 }
               }

              }

Java documentation pour android.media.MediaParser.

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

Champs

Nom Description
ParameterAdtsEnableCbrSeeking

Définit si la recherche à débit binaire constant doit être activée pour l’analyse ADTS.

ParameterAmrEnableCbrSeeking

Définit si la recherche à débit binaire constant doit être activée pour AMR.

ParameterFlacDisableId3

Définit si la piste ID3 doit être désactivée pour LE SERVICE.

ParameterMatroskaDisableCuesSeeking

Définit si l’analyse Matroska doit éviter de rechercher l’élément de repères.

ParameterMp3DisableId3

Définit si la piste ID3 doit être désactivée pour MP3.

ParameterMp3EnableCbrSeeking

Définit si la recherche à débit binaire constant doit être activée pour MP3.

ParameterMp3EnableIndexSeeking

Définit si l’analyse MP3 doit générer un mappage de délai d’octet.

ParameterMp4IgnoreEditLists

Définit si l’analyse MP4 doit ignorer les listes de modification.

ParameterMp4IgnoreTfdtBox

Définit si l’analyse MP4 doit ignorer la zone tfdt.

ParameterMp4TreatVideoFramesAsKeyframes

Définit si l’analyse MP4 doit traiter toutes les images vidéo comme des images clés.

ParameterTsAllowNonIdrAvcKeyframes

Définit si TS doit traiter des échantillons constitués de tranches non IDR comme des exemples de synchronisation (images clés).

ParameterTsDetectAccessUnits

Définit si l’analyse TS doit fractionner le flux AVC en unités d’accès en fonction des en-têtes de tranche.

ParameterTsEnableHdmvDtsAudioStreams

Définit si l’analyse TS doit gérer les flux audio DTS HDMV.

ParameterTsIgnoreAacStream

Définit si l’analyse TS doit ignorer les flux élémentaires AAC.

ParameterTsIgnoreAvcStream

Définit si l’analyse TS doit ignorer les flux élémentaires AVC.

ParameterTsIgnoreSpliceInfoStream

Définit si l’analyse TS doit ignorer les flux d’informations splice.

ParameterTsMode

Définit le mode d’opération pour l’analyse TS.

ParserNameAc3

Analyseur pour le format de conteneur AC-3, tel que défini dans Digital Audio Compression Standard (AC-3).

ParserNameAc4

Analyseur pour le format conteneur AC-4, tel que défini par Dolby AC-4 : livraison audio pour Next-Generation Entertainment Services.

ParserNameAdts

Analyseur pour le format de conteneur ADTS, tel que défini dans ISO/IEC 13818-7.

ParserNameAmr

Analyseur pour le format de conteneur AMR, tel que défini dans RFC 4867.

ParserNameFlac

Analyseur pour le format de conteneur FLAC, tel que défini dans la spécification.

ParserNameFlv

Analyseur pour le format de conteneur JSON, tel que défini dans la spécification adobe Flash Video File Format Specification.

ParserNameFmp4

Analyseur pour les fichiers fragmentés à l’aide du format conteneur MP4, tel que défini dans ISO/IEC 14496-12.

ParserNameMatroska

Analyseur pour le format de conteneur Matroska, tel que défini dans la spécification.

ParserNameMp3

Analyseur pour le format de conteneur MP3, tel que défini dans ISO/IEC 11172-3.

ParserNameMp4

Analyseur pour les fichiers non fragmentés à l’aide du format de conteneur MP4, tel que défini dans iso/IEC 14496-12.

ParserNameOgg

Analyseur pour le format de conteneur OGG, tel que défini dans RFC 3533.

ParserNamePs

Analyseur pour le format de conteneur PS, tel que défini dans ISO/IEC 11172-1.

ParserNameTs

Analyseur pour le format de conteneur TS, tel que défini dans ISO/IEC 13818-1.

ParserNameUnknown

Nom de l’analyseur retourné par #getParserName() quand aucun analyseur n’a encore été sélectionné.

ParserNameWav

Analyseur pour le format de conteneur WAV, tel que défini dans l’interface de programmation multimédia et les spécifications de données.

SampleFlagDecodeOnly
Obsolète.

Indique que l’exemple doit être décodé, mais pas rendu.

SampleFlagEncrypted
Obsolète.

Indique que l’exemple est (au moins partiellement) chiffré.

SampleFlagHasSupplementalData
Obsolète.

Indique que l’exemple contient des données supplémentaires.

SampleFlagKeyFrame
Obsolète.

Indique que l’exemple contient un exemple de synchronisation.

SampleFlagLastSample
Obsolète.

Indique que l’exemple est connu pour contenir le dernier exemple multimédia du flux.

Propriétés

Nom Description
Class

Retourne la classe runtime de ce Object.

(Hérité de Object)
Handle

Handle de l’instance Android sous-jacente.

(Hérité de Object)
JniIdentityHashCode

Obtient le code de hachage d’identité affecté à cet homologue Java par le runtime d’interopérabilité.

(Hérité de Object)
JniManagedPeerState

Analyse les formats de conteneur multimédia et extrait des exemples multimédias et des métadonnées contenus.

(Hérité de JavaObject)
JniPeerMembers

Analyse les formats de conteneur multimédia et extrait des exemples multimédias et des métadonnées contenus.

LogSessionId

Analyse les formats de conteneur multimédia et extrait des exemples multimédias et des métadonnées contenus.

ParserName

Retourne le nom de l’implémentation de l’analyseur de stockage.

PeerReference

Obtient la référence d’objet JNI pour cet homologue Java.

(Hérité de Object)
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.

(Hérité de Object)
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.

(Hérité de Object)

Méthodes

Nom Description
Advance(MediaParser+ISeekableInputReader)

Progresse dans l’extraction du flux multimédia d’entrée, sauf si la fin de l’entrée a été atteinte.

Clone()

Crée et retourne une copie de cet objet.

(Hérité de Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Analyse les formats de conteneur multimédia et extrait des exemples multimédias et des métadonnées contenus.

(Hérité de JavaObject)
Create(MediaParser+IOutputConsumer, String[])

Crée une instance dont l’analyseur de stockage sera sélectionné eniffant le contenu lors du premier #advance appel.

CreateByName(String, MediaParser+IOutputConsumer)

Crée une instance sauvegardée par l’analyseur avec l’élément donné name.

Dispose()

Libère les ressources détenues par cet homologue Java.

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

Libère les ressources détenues par cet homologue Java.

(Hérité de Object)
DisposeUnlessReferenced()

Analyse les formats de conteneur multimédia et extrait des exemples multimédias et des métadonnées contenus.

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

Analyse les formats de conteneur multimédia et extrait des exemples multimédias et des métadonnées contenus.

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

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

(Hérité de Object)
GetHashCode()

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

(Hérité de Object)
GetParserNames(MediaFormat)

Retourne une liste immuable avec les noms des analyseurs qui conviennent aux formats de conteneur avec le fichier donné MediaFormat.

JavaFinalize()
Obsolète.

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)
Release()

Libère toutes les ressources acquises.

Seek(MediaParser+SeekPoint)

Recherche dans le conteneur multimédia en cours d’extraction.

SetHandle(IntPtr, JniHandleOwnership)

Définit la propriété Handle.

(Hérité de Object)
SetParameter(String, Object)

Définit des paramètres spécifiques à l’analyseur qui autorisent la personnalisation du comportement.

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Analyse les formats de conteneur multimédia et extrait des exemples multimédias et des métadonnées contenus.

(Hérité de JavaObject)
SupportsParameter(String)

Retourne si l’élément donné parameterName est pris en charge par cet analyseur.

ToArray<T>()

Crée un tableau managé à partir de ce wrapper de tableau Java.

(Hérité de Object)
ToString()

Retourne une représentation sous forme de chaîne de l’objet.

(Hérité de Object)
UnregisterFromRuntime()

Annule l’inscription de cet homologue Java à partir du runtime d’interopérabilité.

(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, 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)
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)

Implémentations d’interfaces explicites

Nom Description
IJavaPeerable.Disposed()

Analyse les formats de conteneur multimédia et extrait des exemples multimédias et des métadonnées contenus.

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

Analyse les formats de conteneur multimédia et extrait des exemples multimédias et des métadonnées contenus.

(Hérité de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Analyse les formats de conteneur multimédia et extrait des exemples multimédias et des métadonnées contenus.

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

Analyse les formats de conteneur multimédia et extrait des exemples multimédias et des métadonnées contenus.

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

Analyse les formats de conteneur multimédia et extrait des exemples multimédias et des métadonnées contenus.

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

Analyse les formats de conteneur multimédia et extrait des exemples multimédias et des métadonnées contenus.

(Hérité de JavaObject)

Méthodes d’extension

Nom Description
GetJniTypeName(IJavaPeerable)

Obtient le nom JNI du type de l’instance self.

JavaAs<TResult>(IJavaPeerable)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

Analyse les formats de conteneur multimédia et extrait des exemples multimédias et des métadonnées contenus.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

S’applique à