Saltar al contenido principal
MÓDULO NATIVO

Grabadora de Video

El SDK VideoRecorderUI permite capturar un video selfie de 15 segundos usando la cámara frontal. Adicionalmente, valida un token contra un endpoint de verificación antes de permitir que comience la grabación. Una vez terminado, retorna la ruta local del video en el dispositivo para que la app anfitriona pueda manejar el archivo (ej. subirlo a un servidor).
  1. Verificación del Token: Recibe un token y URL, lo verifica y procede a la grabación del video si es válido.
  2. Grabación de Video: Solicita acceso a la cámara y micrófono para grabar un clip de 15 segundos con indicadores visuales.
  3. Retorno de Resultados: Invoca un callback onFinish con el estado del resultado y la ruta local del archivo de video.
Regresar
IOSSWIFTUIv2.1.0

Compatibilidad y Requisitos

Lenguaje
SwiftUI
OS Min
iOS 13+
Swift
5.5+
IDE
Xcode

Incrustar y Firmar el Framework

En Xcode, navega a la pestaña “General” del target de la aplicación, localiza la sección “Frameworks, Libraries and Embedded Content” y para el framework VideoRecorderUI.xcframework, selecciona la opción “Embed & Sign” en la columna “Embed”.

Requisitos Previos

Permisos de cámara y micrófono: Asegúrate de agregar los siguientes permisos en la sección Info del target del proyecto o al archivo Info.plist:

Info.plist

<key>NSCameraUsageDescription</key>
<string>Por favor concede permiso para usar la cámara. Por Dicio</string>

<key>NSMicrophoneUsageDescription</key>
<string>Por favor concede permiso de micrófono para la grabadora de video por Dicio.</string>
Esto es esencial para que iOS muestre el diálogo de solicitud de acceso.

Uso en SwiftUI

1. Importar el framework En el archivo donde tienes intención de iniciar la grabación de video, importa el framework:

Import

import VideoRecorderUI
2. Inicializar y Presentar la Vista de Grabación Para iniciar el proceso, crea una instancia de la vista principal, `VideoRecorderVC`, proporcionándole:

• token: el valor obtenido de tu servicio/entorno de Dicio. • urlVerify: la URL donde se validará el token. • onFinish: un callback que recibe (isSuccessful, route) al completar.

Ejemplo básico en SwiftUI:

Ejemplo de Uso

struct VideoRecorderExample: View {
@State private var showRecorder = false
@State private var resultPath: String = ""

var body: some View {
VStack {
Button("Iniciar grabación") {
showRecorder = true
}
// Presenta el framework a pantalla completa
.fullScreenCover(isPresented: $showRecorder) {
VideoRecorderVC(
token: "TU_TOKEN_PROPORCIONADO",
urlVerify: "https://ejemplo.servicio.com",
onFinish: { isSuccessful, route in
if isSuccessful {
print("Video guardado en: \\(route)")
resultPath = route
} else {
print("Error o cancelación")
}
}
)
}

Text("Ruta del último video: \\(resultPath)")
.font(.footnote)
}
}
}
**Explicación**

• @State private var showRecorder = false controla si la vista del framework se presenta como un fullScreenCover.

• Cuando showRecorder es true, se lanza VideoRecorderVC.

• El callback onFinish retorna el resultado:

  • isSuccessful = true => La grabación fue exitosa, y route contendrá la ruta local.
  • isSuccessful = false => Ocurrió un error o el usuario canceló.
  1. Manejo del Resultado de Grabación El bloque onFinish se ejecuta cuando la grabación termina o si se cierra el flujo. Por ejemplo:

Manejo del resultado

onFinish: { isSuccessful, route in
if isSuccessful {
// El video se guarda en 'route'
print("Video guardado en: \\(route)")
// Aquí puedes subirlo a tu servidor o usarlo como necesites.
} else {
// Hubo algún problema o se canceló
print("Error o cancelación")
}
}
Nota: El archivo de video permanece en el directorio temporal o de documentos de tu aplicación (dependiendo de la implementación exacta del SDK). 
Asegúrate de gestionar su ciclo de vida de acuerdo a tus necesidades (por ejemplo, copiándolo a otro directorio seguro o subiéndolo inmediatamente si no deseas almacenarlo localmente).

Ejemplo Completo

Ejemplo Completo

import SwiftUI
import VideoRecorderUI

struct VideoRecorder: View {
@State private var showRecorder = false
@State private var resultPath: String = ""

var body: some View {
VStack {
Button("Iniciar grabación") {
showRecorder = true
}
.fullScreenCover(isPresented: $showRecorder) {
// Llamada al framework
VideoRecorderVC(
token: AppConfig.shared.bearerToken,
urlVerify: AppConfig.shared.laUrlVerifica,
onFinish: { isSuccessful, route in
// Maneja el resultado
if isSuccessful {
print("Video guardado en: \\(route)")
resultPath = route
} else {
print("Error o cancelación")
}
}
)
}

Text("Ruta del último video: \\(resultPath)")
.font(.footnote)
}
}
}
  1. El botón "Iniciar Grabación" abre la hoja (sheet) completa.
  2. Dentro de esa hoja, VideoRecorderVC realiza internamente la verificación del token y, si es exitosa, procede con la grabación del video.
  3. Al completarse (ya sea exitosamente o resultando en un error), cierra la hoja e invoca tu callback.

Consideraciones Adicionales

• Manejo de Errores: El SDK maneja internamente los casos relacionados con permisos denegados o tokens no autorizados. Si el usuario niega el acceso a la cámara o micrófono, aparecerá una alerta indicándole que conceda los permisos necesarios.

• Estilos e Interfaz: Puedes personalizar la presentación (ej. usando .sheet en lugar de .fullScreenCover), siempre que el contenedor sea una vista de SwiftUI.

• Integración en Proyectos Existentes: Asegúrate de que tu proyecto soporte iOS 13+ (o la versión mínima que hayas especificado). Este SDK no es compatible con versiones anteriores.

• Versionamiento: Revisa la versión específica de VideoRecorderUI.xcframework que recibes, en caso de haber actualizaciones o cambios en la API.