3.4.- Fuentes de datos multimedia. Clases Flashcards

1
Q

3.4.1. Formatos de audio y vídeo

Sistema Android. Estandar (3)

A

El sistema Android proporciona de forma estándar soporte para algunos formatos de vídeo y audio, es decir, viene con algunos códecs preinstalados por defecto. Estos formato son compatibles para todas las versiones.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

3.4.1. Formatos de audio y vídeo

Sistema Android. Versiones (3)

A

El sistema Android proporciona codecs que solo son compatibles con algunas versiones. Por tanto, algunos formato de audio y video solo son compatibles unicamente con una o varias marca y modelos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

3.4.1. Formatos de audio y vídeo

Clase MediaCodecInfo. Métodos (3)

A

Desde la versión 10 de Android (nivel de API 29) y superiores, se están disponibles algunos métodos en la clase MediaCodecInfo que pueden ser ultiles.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

3.4.1. Formatos de audio y vídeo

Clase MediaCodecInfo. Método isSoftwareOnly() (3)

A

Devuelve true si el códec es puramente virtual, es decir, no utiliza ninguna ayuda del hardware para la conversión y, por lo tanto, puede que su velocidad y rendimiento sean inferiores.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

3.4.1. Formatos de audio y vídeo

Clase MediaCodecInfo. Método isHardwareAccelerated() (3)

A

Lo contrario al método isSoftwareOnly(), el códec utiliza hardware y será más veloz.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

3.4.1. Formatos de audio y vídeo

Clase MediaCodecInfo. Método isVendor() (3)

A

Dice si el códec es del fabricante o si es estándar de Android.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

3.4.1. Formatos de audio y vídeo

Formatos de audio (5)

A

Formatos y codecs de audio de Android

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

3.4.1. Formatos de audio y vídeo

Formatos de video (5)

A

Formatos y codecs de video de Android

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

3.4.2. Hardware

Hardware. Clases (1)

A

El paquete android.hardware proporciona las clases necesarias para el manejo del hardware del dispositivo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

3.4.2. Hardware

Hardware. Clase Camera2 (1)

A

Una de las clases más utilizadas en las app multimedia de toma de imágenes es la clase Camera2, si no se ha actualizado a la clase CameraX.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

3.4.2. Hardware

Hardware. Compatibilidad (3)

A

Se debe tener en cuenta que no todos los dispositivos dispones de las características de hardware que soporta el sistema operativo Android.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

3.4.2. Hardware

Hardware. Archivo Manifest. Permisos (1)

A

Declarar en el manifest de la app cuáles carácterísticas se usan y cuáles son indispensables para su funcionamiento. De esta manera, se asegura de que las aplicaciones se ejecuten en el entorno adecuado y no se rompa la ejecución por falta de hardware.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

3.4.2. Hardware

Hardware. Archivo Manifest. Prioridad (1)

A

Si la app usa la cámara pero no es fundamental, se debe declararlo en el manifest de este modo:
* <>uses-feature android:name=”android.hardware.camera.any” android:required=”false” />

Pero si es necesaria para la app, se declarará:
* <>uses-feature android:name=”android.hardware.camera.any” android:required=”true” />

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

3.4.2. Hardware

Archivo Manifest. Cámara trasera del terminal (1)

A
  • android.hardware.camera
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

3.4.2. Hardware

Archivo Manifest. Cámara trasera o cámara frontal indistintamente (1)

A
  • android.hardware.camera.any
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

3.4.2. Hardware

Archivo Manifest. Característica de autoenfoque de cámara (1)

A
  • android.hardware.camera.autofocus
17
Q

3.4.2. Hardware

Archivo Manifest. El terminal puede tener cámara externa (1)

A
  • android.hardware.camera.external
18
Q

3.4.2. Hardware

Archivo Manifest. El flash de la cámara (1)

A
  • android.hardware.camera.flash
19
Q

3.4.2. Hardware

Archivo Manifest. Cámara frontal del dispositivo (1)

A
  • android.hardware.camera.front
20
Q

3.4.2. Hardware

Archivo Manifest. Aceleración del procesamiento de audio (1)

A
  • android.hardware.audio.low_latency
21
Q

3.4.2. Hardware

Archivo Manifest. Función de salida de audio por altavoces, jack de audio, Bluetooth o cualquier otro mecanismo que permita la función (1)

A
  • android.hardware.audio.output
22
Q

3.4.2. Hardware

Archivo Manifest. Funcionalidades de audio de alto nivel (1)

A
  • android.hardware.audio.pro
23
Q

3.4.2. Hardware

Archivo Manifest. Funcionalidad de grabación de audio (1)

A
  • android.hardware.audio.microphone
24
Q

3.4.2. Hardware

Archivo Manifest. El dispositivo puede tener un gamepad (1)

A
  • android.hardware.gamepad
25
# 3.4.2. Hardware Hardware. Eficiencia (3)
Cuando la eficiencia sea fundamental para el rendimiento de la app, es necesario comunicar con el hardware de forma más directa.
26
# 3.4.2. Hardware Hardware. Eficiencia. NDK (3)
El NDK (Native Development Kit) es un conjunto de herramientas y librerías que permiten acceder a niveles más bajos del sistema. Hay que tener en cuenta que, para utilizar el NDK, hay que programar en C y C++, por lo que el desarrollo es más complicado y lleva más tiempo que con un lenguaje de alto nivel como Kotlin.
27
# 3.4.3. Fuentes de datos Fuentes de datos multimedia. Origen de datos (5)
Antes de empezar a codificar, se debe considerar desde dónde llegan los datos multimedia, pues, dependiendo de cada caso, la forma de acceso cambia.
28
# 3.4.3. Fuentes de datos Fuentes de datos multimedia. Capturar video (5)
Acceder directamente al hardware de la cámara o utilizar una app intermedia.
29
# 3.4.3. Fuentes de datos Fuentes de datos multimedia. Reproducir video (5)
Quizá es estático y se incrusta en el APK. Se puede hacerlo guardándolo en la carpeta app/src/main/res/raw o en la carpeta app/src/main/assets. La forma de acceso es diferente en cada caso.
30
# 3.4.3. Fuentes de datos Fuentes de datos multimedia. Carpetas "raw" y "res" (1)
La carpeta “raw” está dentro de “res”, significa que todos los archivos allí se tratarán como un recurso y se les asigna un identificador que algunas funciones aceptan fácilmente sin tener que abrir y leer el archivo. Al ser un recurso, se puede guardar varios distintos según el lenguaje del terminal o el tamaño de pantalla. Rutas: * raw: a app/src/main/res/raw * res: app/src/main/res
31
# 3.4.3. Fuentes de datos Fuentes de datos multimedia. Carpeta "assest" (1)
En la carpeta “assets” se puedre crear un árbol de directorios libremente. No aplica ninguna de las casusísticas de las carpetas "raw" y "res". Además, los recursos de “raw” están limitados en tamaño si no van ya comprimidos. Rutas: * assets: a app/src/main/assets
32
# 3.4.3. Fuentes de datos Aplicación de video. Controlador. Instancia del elemento VideoView (1)
Obtener el objeto VideoView desde el layout. * val videoView = findViewById(R.id.videoView): Obtiene una referencia al elemento VideoView en la interfaz de usuario utilizando su ID.
33
# 3.4.3. Fuentes de datos Aplicación de video. Arquitectura. Obtener archivo de video (1)
Mostrar de tres maneras diferentes de acceder al vídeo guardado en un archivo en disco, en "res/raw”, y, por último, en el directorio “assets”. 2.1. Opción 1: Archivo en disco (almacenamiento externo): * val clip = File(Environment.getExternalStorageDirectory(), "test.mp4") videoView.setVideoPath(clip.path): Carga un archivo de video local almacenado en el dispositivo desde el almacenamiento externo y establece la ruta del video en el elemento VideoView. 2.2. Opción 2: Archivo en directorio res/raw. * videoView.setVideoURI(Uri.parse("android.resource://$packageName/raw/test")): Carga un archivo de video almacenado en el directorio res/raw del proyecto y establece la URI del video en el elemento VideoView. 2.3. Opción 3: Archivo en Internet * videoView.setVideoPath("http://videocdn.bodybuilding.com/video/mp4/62000/62792m.mp4"): Carga un video desde una URL en Internet y establece la ruta del video en el elemento VideoView.
34
# 3.4.3. Fuentes de datos Aplicación de video. Arquitectura. Instancia del controlador MediaController (1)
Utilizar un MediaController para que el usuario vea los controles de play, stop, fast forward, etcétera. * val mediaController = MediaController(this): Crea un objeto MediaController, que proporciona controles de reproducción como botones de reproducción, pausa y avance rápido. * mediaController.setMediaPlayer(videoView): Asocia el MediaController con el elemento VideoView para controlar la reproducción del video. * videoView.setMediaController(mediaController): Establece el MediaController en el elemento VideoView para mostrar los controles de reproducción.
35
# 3.4.3. Fuentes de datos Aplicación de video. Arquitectura. Cargar archivo video de MediaController en VideoView (1)
Comenzar la reproducción mediante la función start. * videoView.requestFocus(): Solicita el enfoque del elemento VideoView, lo que puede ser útil para asegurar que esté listo para recibir eventos de entrada. * videoView.start(): Inicia la reproducción del video en el elemento VideoView.