Tengo una pequeña aplicación que se ejecuta en iOS y tvOS donde estoy mostrando un video en UIView. Es compatible con iOS 12 y tvOS 12. Ahora quiero mostrar PIP para tvOS, por lo tanto, intentar usar AVPictureInPictureController da error "Uso de identificador no declarado 'AVPictureInPictureController ".
A pesar de que el objetivo de implementación se estableció en tvOS 13. En Xcode, las capacidades -> Modo de fondo -> activaron "Audio, Airplay e Picture In Picture". Este código básico da error.
#import <AVKit/AVKit.h>
if ([AVPictureInPictureController isPictureInPictureSupported]) {
// code
}
¿Falta alguna otra configuración o debo hacer algo más?
Gracias
POSIBILIDAD DE CUESTIONES DEBIDAS A LAS LAGUNAS EN LA APLICACIÓN:
Experimente con el AVPlayerViewController: inicialmente asegúrese de establecer la categoría de reproducción de audio, generalmente cuando usamos un AVPlayerViewController para reproducir contenido de video. El modo PIP se invocará automáticamente si la aplicación desarrollada entra en segundo plano, pero solo si cumple con la condición mencionada a continuación, el primero es que el reproductor que estamos usando debe estar en modo de pantalla completa, el segundo es que debemos asegurarnos de que el video debe estar Jugar en él y el tercero es PIP. Debe ser compatible con el dispositivo y, por último, escribir el método delegado para restaurar la interfaz de usuario de nuestro reproductor cuando el usuario regrese del modo Imagen en Imagen.
Implicación con _AVPictureInPictureController: puede encontrar un ejemplo de trabajo en el siguiente hilo. ¿Cómo mostrar AVPictureInPictureController?
Profundizando en el problema: para confirmar que el error no declarado no se debió a las brechas en la implementación y se debió al entorno en Xcode, descargue la fuente y luego agregue la carpeta Fuentes dentro de otra carpeta en su espacio de trabajo. Agregue la carpeta usando " Agregar archivos a ... "y ahora verifique dentro de xcode.
POSIBILIDAD DE PROBLEMA DEBIDO A ACTUALIZAR EN EL XCODE Intente corregir por método 1 Incluya la clase explícitamente en el encabezado y / o cuerpo, en lugar del archivo * .pch. Entonces este error podría desaparecer. También eliminar los datos derivados funciona de vez en cuando. ¿Cambiaste la ubicación en preferencias recientemente por casualidad? Algunos obtienen este error cuando usan un disco ram para los datos derivados y luego vuelven al valor predeterminado. Este es el caso más molesto, ya que hace que este error aparezca en casi todos los archivos.
Pruebe Fix By Approach 2 En algún momento, una solución simple puede ayudar a eliminar una de las # líneas de importación del archivo pch y volver a compilar lo que fallará como se esperaba.
POSIBILIDAD DE PROBLEMA DURANTE XCODE ERROR CACHE, SIGA LOS PASOS SIGUIENTES Clean Build: Command-Option-Shift-K para limpiar la carpeta de compilación. Restablecer simulador: elija Simulador de iOS> Restablecer contenido y configuración Reiniciar Xcode Eliminar su carpeta DerivedData en ~ / Library / Developer / Xcode / DerivedData Restart Computer
Elimine las carpetas / var / de una manera muy específica. rm -rf "$ (getconf DARWIN_USER_CACHE_DIR) /org.llvm.clang/ModuleCache"
Fuente: Cómo vaciar cachés y limpiar todos los objetivos Xcode 4 y posteriores Xcode Errores de "uso de identificador no declarado", compila / funciona muy bien Uso de identificador no declarado en Xcode 9.0 https://developer.apple.com/documentation/avkit/adopting_picture_in_picture_in_a_standard_player
fuente
Para crear un reproductor de video simple
Primero, necesitará implementar un reproductor de video básico en el archivo ViewController.m de su proyecto, así:
Para obtener más ayuda, consulte
https://help.apple.com/xcode/mac/8.0/#/dev51a648b07
fuente