MediaParser Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Analizza i formati dei contenitori multimediali ed estrae esempi e metadati multimediali contenuti.
[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
- Ereditarietà
- Attributi
Commenti
Analizza i formati dei contenitori multimediali ed estrae esempi e metadati multimediali contenuti.
Questa classe fornisce l'accesso a una batteria di parser di contenitori multimediali di basso livello. Ogni istanza di questa classe è associata a un'implementazione specifica del parser multimediale adatta per l'estrazione da un formato contenitore multimediale specifico. L'assegnazione di implementazione del parser multimediale dipende dal metodo factory (vedere #create e #createByName) usato per creare l'istanza.
Per usare questa classe, gli utenti devono implementare quanto segue.
<ul><li>InputReader: fornisce i byte del contenitore multimediale da analizzare.
<li>OutputConsumer: fornisce un sink per tutti i dati e i metadati estratti.
</ul>
Il frammento di codice seguente include un esempio di utilizzo:
MyOutputConsumer myOutputConsumer = new MyOutputConsumer();
MyInputReader myInputReader = new MyInputReader("www.example.com");
MediaParser mediaParser = MediaParser.create(myOutputConsumer);
while (mediaParser.advance(myInputReader)) {}
mediaParser.release();
mediaParser = null;
Il frammento di codice seguente fornisce un'implementazione di esempio rudimentale OutputConsumer che estrae e pubblica tutti gli esempi video:
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);
}
}
}
per android.media.MediaParser.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.
Campi
| Nome | Descrizione |
|---|---|
| ParameterAdtsEnableCbrSeeking |
Imposta un valore che indica se la ricerca della velocità in bit costante deve essere abilitata per l'analisi di ADTS. |
| ParameterAmrEnableCbrSeeking |
Imposta se la ricerca della velocità in bit costante deve essere abilitata per AMR. |
| ParameterFlacDisableId3 |
Imposta se la traccia ID3 deve essere disabilitata per FLAC. |
| ParameterMatroskaDisableCuesSeeking |
Imposta se l'analisi di Matroska deve evitare di cercare l'elemento dei segnali. |
| ParameterMp3DisableId3 |
Imposta un valore che indica se la traccia ID3 deve essere disabilitata per MP3. |
| ParameterMp3EnableCbrSeeking |
Imposta se la ricerca della velocità in bit costante deve essere abilitata per MP3. |
| ParameterMp3EnableIndexSeeking |
Imposta un valore che indica se l'analisi MP3 deve generare un mapping time-to-byte. |
| ParameterMp4IgnoreEditLists |
Imposta un valore che indica se l'analisi MP4 deve ignorare gli elenchi di modifica. |
| ParameterMp4IgnoreTfdtBox |
Imposta se l'analisi MP4 deve ignorare la casella tfdt. |
| ParameterMp4TreatVideoFramesAsKeyframes |
Imposta se l'analisi MP4 deve considerare tutti i fotogrammi video come fotogrammi chiave. |
| ParameterTsAllowNonIdrAvcKeyframes |
Imposta se il TS deve considerare campioni costituiti da sezioni IDR non come campioni di sincronizzazione (fotogrammi chiave). |
| ParameterTsDetectAccessUnits |
Imposta un valore che indica se l'analisi TS deve suddividere il flusso AVC in unità di accesso in base alle intestazioni di sezione. |
| ParameterTsEnableHdmvDtsAudioStreams |
Imposta se l'analisi TS deve gestire flussi audio DTS HDMV. |
| ParameterTsIgnoreAacStream |
Imposta un valore che indica se l'analisi TS deve ignorare i flussi elementari di AAC. |
| ParameterTsIgnoreAvcStream |
Imposta se l'analisi TS deve ignorare i flussi elementari AVC. |
| ParameterTsIgnoreSpliceInfoStream |
Imposta un valore che indica se l'analisi TS deve ignorare i flussi di informazioni di splice. |
| ParameterTsMode |
Imposta la modalità operativa per l'analisi TS. |
| ParserNameAc3 |
Parser per il formato contenitore AC-3, come definito in Digital Audio Compression Standard (AC-3). |
| ParserNameAc4 |
Parser per il formato contenitore AC-4, come definito da Dolby AC-4: recapito audio per i servizi di intrattenimento di nuova generazione. |
| ParserNameAdts |
Parser per il formato del contenitore ADTS, come definito in ISO/IEC 13818-7. |
| ParserNameAmr |
Parser per il formato del contenitore AMR, come definito in RFC 4867. |
| ParserNameFlac |
Parser per il formato del contenitore FLAC, come definito nella specifica. |
| ParserNameFlv |
Parser per il formato del contenitore JSON, come definito in Adobe Flash Video File Format Specification.Parser for the JSON container format format, as defined in Adobe Flash Video File Format Specification. |
| ParserNameFmp4 |
Parser per i file frammentati usando il formato del contenitore MP4, come definito in ISO/IEC 14496-12. |
| ParserNameMatroska |
Parser per il formato del contenitore Matroska, come definito nella specifica. |
| ParserNameMp3 |
Parser per il formato del contenitore MP3, come definito in ISO/IEC 11172-3. |
| ParserNameMp4 |
Parser per i file non frammentati usando il formato del contenitore MP4, come definito in ISO/IEC 14496-12. |
| ParserNameOgg |
Parser per il formato del contenitore OGG, come definito in RFC 3533. |
| ParserNamePs |
Parser per il formato del contenitore PS, come definito in ISO/IEC 11172-1. |
| ParserNameTs |
Parser per il formato del contenitore TS, come definito in ISO/IEC 13818-1. |
| ParserNameUnknown |
Nome del parser restituito da |
| ParserNameWav |
Parser per il formato del contenitore WAV, come definito nelle specifiche di interfaccia di programmazione multimediale e dati. |
| SampleFlagDecodeOnly |
Obsoleti.
Indica che l'esempio deve essere decodificato ma non sottoposto a rendering. |
| SampleFlagEncrypted |
Obsoleti.
Indica che l'esempio è (almeno parzialmente) crittografato. |
| SampleFlagHasSupplementalData |
Obsoleti.
Indica che l'esempio contiene dati supplementari. |
| SampleFlagKeyFrame |
Obsoleti.
Indica che l'esempio contiene un esempio di sincronizzazione. |
| SampleFlagLastSample |
Obsoleti.
Indica che l'esempio è noto per contenere l'ultimo campione multimediale del flusso. |
Proprietà
| Nome | Descrizione |
|---|---|
| Class |
Restituisce la classe di runtime di questo |
| Handle |
Handle per l'istanza di Android sottostante. (Ereditato da Object) |
| JniIdentityHashCode |
Ottiene il codice hash di identità assegnato a questo Java peer dal runtime di interoperabilità. (Ereditato da Object) |
| JniManagedPeerState |
Analizza i formati dei contenitori multimediali ed estrae esempi e metadati multimediali contenuti. (Ereditato da JavaObject) |
| JniPeerMembers |
Analizza i formati dei contenitori multimediali ed estrae esempi e metadati multimediali contenuti. |
| LogSessionId |
Analizza i formati dei contenitori multimediali ed estrae esempi e metadati multimediali contenuti. |
| ParserName |
Restituisce il nome dell'implementazione del parser di supporto. |
| PeerReference |
Ottiene il riferimento all'oggetto JNI per questo peer Java. (Ereditato da Object) |
| ThresholdClass |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. (Ereditato da Object) |
| ThresholdType |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. (Ereditato da Object) |
Metodi
| Nome | Descrizione |
|---|---|
| Advance(MediaParser+ISeekableInputReader) |
Avanza nell'estrazione del flusso multimediale di input, a meno che non sia stata raggiunta la fine dell'input. |
| Clone() |
Crea e restituisce una copia di questo oggetto. (Ereditato da Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Analizza i formati dei contenitori multimediali ed estrae esempi e metadati multimediali contenuti. (Ereditato da JavaObject) |
| Create(MediaParser+IOutputConsumer, String[]) |
Crea un'istanza il cui parser di backup verrà selezionato eseguendo l'analisi del contenuto durante la prima |
| CreateByName(String, MediaParser+IOutputConsumer) |
Crea un'istanza supportata dal parser con l'oggetto specificato |
| Dispose() |
Rilascia le risorse contenute in questo peer Java. (Ereditato da Object) |
| Dispose(Boolean) |
Rilascia le risorse contenute in questo peer Java. (Ereditato da Object) |
| DisposeUnlessReferenced() |
Analizza i formati dei contenitori multimediali ed estrae esempi e metadati multimediali contenuti. (Ereditato da JavaObject) |
| Equals(Object) |
Analizza i formati dei contenitori multimediali ed estrae esempi e metadati multimediali contenuti. (Ereditato da JavaObject) |
| Equals(Object) |
Indica se un altro oggetto è "uguale a" questo. (Ereditato da Object) |
| GetHashCode() |
Restituisce un valore di codice hash per l'oggetto . (Ereditato da Object) |
| GetParserNames(MediaFormat) |
Restituisce un elenco non modificabile con i nomi dei parser adatti ai formati di contenitore con l'oggetto specificato |
| JavaFinalize() |
Obsoleti.
Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto . (Ereditato da Object) |
| Notify() |
Riattiva un singolo thread in attesa del monitor dell'oggetto. (Ereditato da Object) |
| NotifyAll() |
Riattiva tutti i thread in attesa del monitor dell'oggetto. (Ereditato da Object) |
| Release() |
Rilascia tutte le risorse acquisite. |
| Seek(MediaParser+SeekPoint) |
Cerca all'interno del contenitore multimediale da estrarre. |
| SetHandle(IntPtr, JniHandleOwnership) |
Imposta la proprietà Handle. (Ereditato da Object) |
| SetParameter(String, Object) |
Imposta i parametri specifici del parser che consentono la personalizzazione del comportamento. |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Analizza i formati dei contenitori multimediali ed estrae esempi e metadati multimediali contenuti. (Ereditato da JavaObject) |
| SupportsParameter(String) |
Restituisce un valore che indica se l'oggetto specificato |
| ToArray<T>() |
Crea una matrice gestita da questo wrapper di matrice Java. (Ereditato da Object) |
| ToString() |
Restituisce una rappresentazione di stringa dell'oggetto . (Ereditato da Object) |
| UnregisterFromRuntime() |
Annulla la registrazione di questo Java peer dal runtime di interoperabilità. (Ereditato da Object) |
| Wait() |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo <>una notifica</em> o <em>interrotto</em>. (Ereditato da Object) |
| Wait(Int64, Int32) |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo<> una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale. (Ereditato da Object) |
| Wait(Int64) |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo<> una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| IJavaPeerable.Disposed() |
Analizza i formati dei contenitori multimediali ed estrae esempi e metadati multimediali contenuti. (Ereditato da JavaObject) |
| IJavaPeerable.Finalized() |
Analizza i formati dei contenitori multimediali ed estrae esempi e metadati multimediali contenuti. (Ereditato da JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Analizza i formati dei contenitori multimediali ed estrae esempi e metadati multimediali contenuti. (Ereditato da JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Analizza i formati dei contenitori multimediali ed estrae esempi e metadati multimediali contenuti. (Ereditato da JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Analizza i formati dei contenitori multimediali ed estrae esempi e metadati multimediali contenuti. (Ereditato da JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Analizza i formati dei contenitori multimediali ed estrae esempi e metadati multimediali contenuti. (Ereditato da JavaObject) |
Metodi di estensione
| Nome | Descrizione |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Ottiene il nome JNI del tipo dell'istanza |
| JavaAs<TResult>(IJavaPeerable) |
Provare a digitare |
| JavaCast<TResult>(IJavaObject) |
Esegue una conversione del tipo di tipo controllato dal runtime Android. |
| JavaCast<TResult>(IJavaObject) |
Analizza i formati dei contenitori multimediali ed estrae esempi e metadati multimediali contenuti. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Provare a digitare |