MediaParser Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Analiza los formatos de contenedor multimedia y extrae los metadatos y ejemplos multimedia contenidos.
[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
- Herencia
- Atributos
Comentarios
Analiza los formatos de contenedor multimedia y extrae los metadatos y ejemplos multimedia contenidos.
Esta clase proporciona acceso a una batería de analizadores de contenedores multimedia de bajo nivel. Cada instancia de esta clase está asociada a una implementación específica del analizador de medios que es adecuada para la extracción de un formato de contenedor multimedia específico. La asignación de implementación del analizador multimedia depende del método de fábrica (vea #create y #createByName) usado para crear la instancia.
Los usuarios deben implementar lo siguiente para usar esta clase.
<ul><li>InputReader: proporciona los bytes del contenedor multimedia que se van a analizar.
<li>OutputConsumer: proporciona un receptor para todos los datos y metadatos extraídos.
</ul>
El siguiente fragmento de código incluye un ejemplo de uso:
MyOutputConsumer myOutputConsumer = new MyOutputConsumer();
MyInputReader myInputReader = new MyInputReader("www.example.com");
MediaParser mediaParser = MediaParser.create(myOutputConsumer);
while (mediaParser.advance(myInputReader)) {}
mediaParser.release();
mediaParser = null;
El siguiente fragmento de código proporciona una implementación de ejemplo rudimentaria OutputConsumer que extrae y publica todos los ejemplos de vídeo:
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 documentación para android.media.MediaParser.
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.
Campos
| Nombre | Description |
|---|---|
| ParameterAdtsEnableCbrSeeking |
Establece si la búsqueda de velocidad de bits constante debe estar habilitada para el análisis de ADTS. |
| ParameterAmrEnableCbrSeeking |
Establece si la búsqueda de velocidad de bits constante debe estar habilitada para AMR. |
| ParameterFlacDisableId3 |
Establece si la pista ID3 debe deshabilitarse para FLAC. |
| ParameterMatroskaDisableCuesSeeking |
Establece si el análisis de Matroska debe evitar buscar en el elemento cues. |
| ParameterMp3DisableId3 |
Establece si la pista ID3 debe deshabilitarse para MP3. |
| ParameterMp3EnableCbrSeeking |
Establece si la búsqueda de velocidad de bits constante debe estar habilitada para MP3. |
| ParameterMp3EnableIndexSeeking |
Establece si el análisis de MP3 debe generar una asignación de tiempo a byte. |
| ParameterMp4IgnoreEditLists |
Establece si el análisis de MP4 debe omitir las listas de edición. |
| ParameterMp4IgnoreTfdtBox |
Establece si el análisis de MP4 debe omitir el cuadro tfdt. |
| ParameterMp4TreatVideoFramesAsKeyframes |
Establece si el análisis de MP4 debe tratar todos los fotogramas de vídeo como fotogramas clave. |
| ParameterTsAllowNonIdrAvcKeyframes |
Establece si TS debe tratar muestras que constan de segmentos I que no son IDR como ejemplos de sincronización (fotogramas clave). |
| ParameterTsDetectAccessUnits |
Establece si el análisis de TS debe dividir el flujo de AVC en unidades de acceso basadas en encabezados de segmento. |
| ParameterTsEnableHdmvDtsAudioStreams |
Establece si el análisis de TS debe controlar las secuencias de audio DTS de HDMV. |
| ParameterTsIgnoreAacStream |
Establece si el análisis de TS debe omitir las secuencias elementales de AAC. |
| ParameterTsIgnoreAvcStream |
Establece si el análisis de TS debe omitir las secuencias elementales de AVC. |
| ParameterTsIgnoreSpliceInfoStream |
Establece si el análisis de TS debe omitir los flujos de información de splice. |
| ParameterTsMode |
Establece el modo de operación para el análisis de TS. |
| ParserNameAc3 |
Analizador para el formato de contenedor AC-3, tal como se define en Digital Audio Compression Standard (AC-3). |
| ParserNameAc4 |
Analizador para el formato de contenedor AC-4, tal como se define en Dolby AC-4: Entrega de audio para Next-Generation Entertainment Services. |
| ParserNameAdts |
Analizador para el formato de contenedor de ADTS, tal como se define en ISO/IEC 13818-7. |
| ParserNameAmr |
Analizador para el formato de contenedor AMR, tal como se define en RFC 4867. |
| ParserNameFlac |
Analizador para el formato de contenedor FLAC, tal como se define en la especificación. |
| ParserNameFlv |
Analizador para el formato de contenedor FLV, tal como se define en adobe Flash Video File Format Specification. |
| ParserNameFmp4 |
Analizador para archivos fragmentados mediante el formato de contenedor MP4, tal como se define en ISO/IEC 14496-12. |
| ParserNameMatroska |
Analizador para el formato de contenedor Matroska, tal como se define en la especificación. |
| ParserNameMp3 |
Analizador para el formato de contenedor MP3, tal como se define en ISO/IEC 11172-3. |
| ParserNameMp4 |
Analizador para archivos no fragmentados mediante el formato de contenedor MP4, tal como se define en ISO/IEC 14496-12. |
| ParserNameOgg |
Analizador para el formato de contenedor de OGG, tal como se define en RFC 3533. |
| ParserNamePs |
Analizador para el formato de contenedor PS, tal como se define en ISO/IEC 11172-1. |
| ParserNameTs |
Analizador para el formato de contenedor TS, tal como se define en ISO/IEC 13818-1. |
| ParserNameUnknown |
Nombre del analizador devuelto por |
| ParserNameWav |
Analizador para el formato de contenedor WAV, tal como se define en Interfaz de programación multimedia y Especificaciones de datos. |
| SampleFlagDecodeOnly |
Obsoletos.
Indica que el ejemplo debe descodificarse pero no representarse. |
| SampleFlagEncrypted |
Obsoletos.
Indica que la muestra está cifrada (al menos parcialmente). |
| SampleFlagHasSupplementalData |
Obsoletos.
Indica que el ejemplo tiene datos complementarios. |
| SampleFlagKeyFrame |
Obsoletos.
Indica que el ejemplo contiene un ejemplo de sincronización. |
| SampleFlagLastSample |
Obsoletos.
Indica que se sabe que el ejemplo contiene el último ejemplo multimedia de la secuencia. |
Propiedades
| Nombre | Description |
|---|---|
| Class |
Devuelve la clase en tiempo de ejecución de este |
| Handle |
Identificador de la instancia de Android subyacente. (Heredado de Object) |
| JniIdentityHashCode |
Obtiene el código hash de identidad asignado a este Java del mismo nivel por el tiempo de ejecución de interoperabilidad. (Heredado de Object) |
| JniManagedPeerState |
Analiza los formatos de contenedor multimedia y extrae los metadatos y ejemplos multimedia contenidos. (Heredado de JavaObject) |
| JniPeerMembers |
Analiza los formatos de contenedor multimedia y extrae los metadatos y ejemplos multimedia contenidos. |
| LogSessionId |
Analiza los formatos de contenedor multimedia y extrae los metadatos y ejemplos multimedia contenidos. |
| ParserName |
Devuelve el nombre de la implementación del analizador de respaldo. |
| PeerReference |
Obtiene la referencia de objeto JNI para este Java del mismo nivel. (Heredado de Object) |
| ThresholdClass |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. (Heredado de Object) |
| ThresholdType |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. (Heredado de Object) |
Métodos
| Nombre | Description |
|---|---|
| Advance(MediaParser+ISeekableInputReader) |
Realiza el progreso en la extracción del flujo multimedia de entrada, a menos que se alcance el final de la entrada. |
| Clone() |
Crea y devuelve una copia de este objeto. (Heredado de Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Analiza los formatos de contenedor multimedia y extrae los metadatos y ejemplos multimedia contenidos. (Heredado de JavaObject) |
| Create(MediaParser+IOutputConsumer, String[]) |
Crea una instancia cuyo analizador de respaldo se seleccionará mediante el examen del contenido durante la primera |
| CreateByName(String, MediaParser+IOutputConsumer) |
Crea una instancia respaldada por el analizador con el especificado |
| Dispose() |
Libera los recursos mantenidos por este Java del mismo nivel. (Heredado de Object) |
| Dispose(Boolean) |
Libera los recursos mantenidos por este Java del mismo nivel. (Heredado de Object) |
| DisposeUnlessReferenced() |
Analiza los formatos de contenedor multimedia y extrae los metadatos y ejemplos multimedia contenidos. (Heredado de JavaObject) |
| Equals(Object) |
Analiza los formatos de contenedor multimedia y extrae los metadatos y ejemplos multimedia contenidos. (Heredado de JavaObject) |
| Equals(Object) |
Indica si algún otro objeto es "igual a" este. (Heredado de Object) |
| GetHashCode() |
Devuelve un valor de código hash para el objeto . (Heredado de Object) |
| GetParserNames(MediaFormat) |
Devuelve una lista inmutable con los nombres de los analizadores que son adecuados para los formatos de contenedor con el especificado |
| JavaFinalize() |
Obsoletos.
Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto . (Heredado de Object) |
| Notify() |
Activa un único subproceso que está esperando en el monitor de este objeto. (Heredado de Object) |
| NotifyAll() |
Activa todos los subprocesos que están esperando en el monitor de este objeto. (Heredado de Object) |
| Release() |
Libera los recursos adquiridos. |
| Seek(MediaParser+SeekPoint) |
Busca dentro del contenedor multimedia que se va a extraer. |
| SetHandle(IntPtr, JniHandleOwnership) |
Establece la propiedad Handle. (Heredado de Object) |
| SetParameter(String, Object) |
Establece parámetros específicos del analizador que permiten personalizar el comportamiento. |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Analiza los formatos de contenedor multimedia y extrae los metadatos y ejemplos multimedia contenidos. (Heredado de JavaObject) |
| SupportsParameter(String) |
Devuelve si este analizador admite el objeto especificado |
| ToArray<T>() |
Crea una matriz administrada a partir de este contenedor de matriz Java. (Heredado de Object) |
| ToString() |
Devuelve una representación de cadena del objeto . (Heredado de Object) |
| UnregisterFromRuntime() |
Anula el registro de este Java del mismo nivel del tiempo de ejecución de interoperabilidad. (Heredado de Object) |
| Wait() |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em< o >em<interrumpido>/em<.><> (Heredado de Object) |
| Wait(Int64, Int32) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. (Heredado de Object) |
| Wait(Int64) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. (Heredado de Object) |
Implementaciones de interfaz explícitas
| Nombre | Description |
|---|---|
| IJavaPeerable.Disposed() |
Analiza los formatos de contenedor multimedia y extrae los metadatos y ejemplos multimedia contenidos. (Heredado de JavaObject) |
| IJavaPeerable.Finalized() |
Analiza los formatos de contenedor multimedia y extrae los metadatos y ejemplos multimedia contenidos. (Heredado de JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Analiza los formatos de contenedor multimedia y extrae los metadatos y ejemplos multimedia contenidos. (Heredado de JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Analiza los formatos de contenedor multimedia y extrae los metadatos y ejemplos multimedia contenidos. (Heredado de JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Analiza los formatos de contenedor multimedia y extrae los metadatos y ejemplos multimedia contenidos. (Heredado de JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Analiza los formatos de contenedor multimedia y extrae los metadatos y ejemplos multimedia contenidos. (Heredado de JavaObject) |
Métodos de extensión
| Nombre | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtiene el nombre JNI del tipo de la instancia |
| JavaAs<TResult>(IJavaPeerable) |
Intente coerción |
| JavaCast<TResult>(IJavaObject) |
Realiza una conversión de tipos comprobados en tiempo de ejecución de Android. |
| JavaCast<TResult>(IJavaObject) |
Analiza los formatos de contenedor multimedia y extrae los metadatos y ejemplos multimedia contenidos. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Intente coerción |