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
Q

3.4.2. Hardware

Hardware. Eficiencia (3)

A

Cuando la eficiencia sea fundamental para el rendimiento de la app, es necesario comunicar con el hardware de forma más directa.

26
Q

3.4.2. Hardware

Hardware. Eficiencia. NDK (3)

A

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
Q

3.4.3. Fuentes de datos

Fuentes de datos multimedia. Origen de datos (5)

A

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
Q

3.4.3. Fuentes de datos

Fuentes de datos multimedia. Capturar video (5)

A

Acceder directamente al hardware de la cámara o utilizar una app intermedia.

29
Q

3.4.3. Fuentes de datos

Fuentes de datos multimedia. Reproducir video (5)

A

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
Q

3.4.3. Fuentes de datos

Fuentes de datos multimedia. Carpetas “raw” y “res” (1)

A

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
Q

3.4.3. Fuentes de datos

Fuentes de datos multimedia. Carpeta “assest” (1)

A

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
Q

3.4.3. Fuentes de datos

Aplicación de video. Controlador. Instancia del elemento VideoView (1)

A

Obtener el objeto VideoView desde el layout.
* val videoView = findViewById<VideoView>(R.id.videoView): Obtiene una referencia al elemento VideoView en la interfaz de usuario utilizando su ID.</VideoView>

33
Q

3.4.3. Fuentes de datos

Aplicación de video. Arquitectura. Obtener archivo de video (1)

A

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
Q

3.4.3. Fuentes de datos

Aplicación de video. Arquitectura. Instancia del controlador MediaController (1)

A

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
Q

3.4.3. Fuentes de datos

Aplicación de video. Arquitectura. Cargar archivo video de MediaController en VideoView (1)

A

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.