MediaParser Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
- 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;
@Override
public void onSeekMapFound(int i, @NonNull MediaFormat mediaFormat) {
// Do nothing.
}
@Override
public void onTrackDataFound(int i, @NonNull TrackData trackData) {
MediaFormat mediaFormat = trackData.mediaFormat;
if (videoTrackIndex == -1 &&
mediaFormat
.getString(MediaFormat.KEY_MIME, /* defaultValue= */ "")
.startsWith("video/")) {
videoTrackIndex = i;
}
}
@Override
public void onSampleDataFound(int trackIndex, @NonNull InputReader inputReader)
throws IOException {
int numberOfBytesToRead = (int) inputReader.getLength();
if (videoTrackIndex != trackIndex) {
// Discard contents.
inputReader.read(
discardedDataBuffer,
/* offset= */ 0,
Math.min(discardDataBuffer.length, numberOfBytesToRead));
} else {
ensureSpaceInBuffer(numberOfBytesToRead);
int bytesRead = inputReader.read(
sampleDataBuffer, bytesWrittenCount, numberOfBytesToRead);
bytesWrittenCount += bytesRead;
}
}
@Override
public void onSampleCompleted(
int trackIndex,
long timeMicros,
int flags,
int size,
int offset,
@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,
/* destPos= */ 0,
size);
// Place trailing bytes at the start of the buffer.
System.arraycopy(
sampleDataBuffer,
bytesWrittenCount - offset,
sampleDataBuffer,
/* destPos= */ 0,
/* size= */ offset);
bytesWrittenCount = bytesWrittenCount - offset;
publishSample(sampleData, timeMicros, flags);
}
private void ensureSpaceInBuffer(int numberOfBytesToRead) {
int requiredLength = bytesWrittenCount + numberOfBytesToRead;
if (requiredLength > 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 |
| 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 |
| 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 |
| CreateByName(String, MediaParser+IOutputConsumer) |
Crée une instance sauvegardée par l’analyseur avec l’élément donné |
| 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é |
| 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é |
| 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 |
| JavaAs<TResult>(IJavaPeerable) |
Essayez de forcer |
| 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 |