Muestre una foto en vivo: una foto que incluye acción y sonido antes y después de capturar el momento.
I. Resumen
En iOS y tvOS, puede usar esta clase para hacer referencia a Live Photo desde la galería del usuario (obtenida usando las clases PHAsset y PHImageManager ) y usar los datos obtenidos para cargar y mostrar Live Photo en otros lugares (como compartir imágenes a través de redes sociales) y cargue la Live Photo en PHLivePhotoView para mostrarla.
En iOS, tvOS y MacOS, puede usar esta clase para demostrar el proceso de edición de una Live Photo en una extensión de edición de fotos.
Nota
Para obtener información sobre cómo integrar Live Photos con la experiencia de usuario de su aplicación, consulte Live Photos en las Pautas de interfaz humana de iOS .
PHLivePhoto
La clase tiene la misma función para Live Photo que UIImage
( ) para imágenes estáticas. NSImage
Un objeto UIImage
o NSImage
no es un archivo de datos cargado para una imagen, sino una imagen lista para usar que se puede mostrar en una vista; de manera similar, un objeto marca una foto en vivo PHLivePhoto
que está lista para usar PHLivePhotoView
(Para usar una Live Photo como elemento de una biblioteca de fotos, use PHAsset
una clase. Para usar una fuente de datos que constituya una Live Photo, use PHAssetResource
una clase).
Sugerencias
Para mostrar contenido de Live Photo en una página web, utilice el marco LivePhotosKit JS.
2. Contenido
1. Revisa una foto en vivo
@property(solo lectura, no atómico) CGSize tamaño;
El tamaño de la foto en vivo.
2. Cargue una foto en vivo desde un archivo de datos
+ (PHLivePhotoRequestID)requestLivePhotoWithResourceFileURLs:(NSArray<NSURL *> *)fileURLs placeholderImage:(UIImage *)image targetSize:(CGSize)targetSize contentMode:(PHImageContentMode)contentMode resultHandler:(void (^)(PHLivePhoto *livePhoto, NSDictionary *info) )manejador de resultados;
fileURLs
,NSArray
- Una matriz de URL, esta matriz contiene varias URL que constituyen un recurso de Live Photo, utilice laPHAssetResource
clase para obtener la URL.image
,UIImage
- Se carga todo el contenido de Live Photo y se muestra la imagen alternativa anterior.targetSize
,CGSize
- El tamaño deseado de Live Photo. La entradaCGSizeZero
es el tamaño original de Live Photo.contentMode
,PHImageContentMode
- Cómo hacer coincidir la relación de aspecto de la imagen con el tamaño solicitado. Por favor, compruebe los detallesPHImageContentMode
.resultHandler
,block
- La devolución de llamada cuando se carga la imagen.livePhoto
,PHLivePhoto
- La Live Photo solicitada.info
,NSDictionary
- Información sobre el estado de la solicitud. Consulte a continuación para obtener más informaciónResult Handler Info Dictionary Keys
.
Carga asíncronamente una foto en vivo desde el archivo de origen dado. Devolverá una identificación única utilizada para identificar la solicitud.
Utilice este método para cargar el objeto Live Photo para mostrarlo desde el archivo de datos obtenido previamente en la biblioteca de fotos. Por ejemplo, se podría usar una aplicación de red social PHAssetResource
para tomar los archivos de datos que componen una Live Photo de la biblioteca de fotos de un usuario y cargarlos en un servidor. Luego, en el dispositivo de otro usuario, la aplicación descarga los archivos de datos y usa este método para recrear un objeto Live Photo para PHLivePhotoView
mostrarlo usando la clase.
Nota
Para obtener un objeto que represente un recurso de Live Photo en la biblioteca de fotos del usuarioPHLivePhoto
, usePHAsset
la clase para ubicar el recurso y usePHImageManager
la clase para obtener los datos de Live Photo del recurso para su visualización.
Para introducir una Live Photo en la biblioteca de fotos, usePHAssetCreationRequest
la clase.
Este método es asíncrono. Fotos carga, valida y prepara los datos en un hilo de fondo, luego llama a su resultHandler
devolución de llamada con un objeto Live Photo listo para mostrar. Al igual que PHImageManager
con métodos similares en Fotos, su resultHandler
devolución de llamada se puede llamar más de una vez: la primera vez, proporciona un objeto Live Photo de baja calidad (que contiene solo la imagen fija en el parámetro de imagen del método) y luego devuelve una Live Photo completa de movimiento. y contenido sonoro. Las fotos también volverán a llamar a su devolución de llamada si el valor correspondiente está en el diccionario en su resultHandler
devolución de llamada .info
PHLivePhotoInfoIsDegradedKey
YES
resultHandler
Este método carga un objeto de la misma colección de archivos que un recurso de Live Photo obtenido previamente PHLivePhoto
. Cuando utiliza este método, Photos verifica que los archivos y sus datos de origen se puedan cargar como Live Photo. Si Photos no pudo cargar una Live Photo desde el archivo dado, el parámetro resultHandler
en su devolución de llamada será y el diccionario contendrá un objeto que describe el error.result
nil
info
NSError
Claves del diccionario de información del controlador de resultados
NSString *const PHLivePhotoInfoErrorKey;
Ocurrió un error al cargar la foto solicitada. El valor es unNSError
objeto.NSString *const PHLivePhotoInfoIsDegradedKey;
Indica si la livePhoto devuelta actualmente es un resultado temporal de baja calidad de la foto solicitada. En caso afirmativoYES
, la devolución de llamada se llamará más tarde para devolver los datos completos de Live Photo.NSString *const PHLivePhotoInfoCancelledKey;
Si cargar la foto solicitada o no.
+ (void)cancelLivePhotoRequestWithRequestID:(PHLivePhotoRequestID)requestID;
Cancelar una solicitud asíncrona.
Cuando utiliza el método anterior para solicitar de forma asíncrona cargar una Live Photo desde el archivo de origen, este método devolverá un identificador numérico para la solicitud. Para cancelar esta solicitud antes de que se complete, llame a este método y pase el identificador numérico de la solicitud.