es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

tvOS – Anular el control deslizante de tiempo de inicio / tiempo de finalización de AVPlayerViewController.

Estoy usando AVPlayerViewController para reproducir un archivo HLS, sin embargo, la hora de inicio es siempre 00:00 y la hora de finalización es la duración del evento del manifiesto HLS.

En su lugar, desearía mostrar la hora de inicio del evento y la hora de finalización del evento.

He encontrado que se puede usar: AVKitMetadataIdentifierExactStartDate / AVKitMetadataIdentifierExactEndDate

Pero parece ser que, cuando creo un AVMutableMetadataItem e intento asignar el identificador AVKitMetadataIdentifierExactStartDate, no existe. Así que estoy algo atascado.

¿Alguien tiene alguna idea?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnología de la información especializado en AVPlayer, TVOS y AVPlayerViewController, puedo sugerir la siguiente solución para el problema que está enfrentando:

    Puede intentar usar AVKitMetadataIdentifieriTunesMetadata en lugar de AVKitMetadataIdentifierExactStartDate para agregar metadatos de hora de inicio y finalización al AVPlayerViewController.

    Aquí está cómo hacerlo:

    1. Cree un objeto AVMutableMetadataItem para la hora de inicio y la hora de finalización.
    let startTimeItem = AVMutableMetadataItem()
    let endTimeItem = AVMutableMetadataItem()
    
    1. Configure las propiedades key y value para ambos objetos de metadatos.
    let startDate = // establezca la fecha de inicio aquí
    let endDate = // establezca la fecha de finalización aquí
    
    startTimeItem.identifier = AVMetadataIdentifier.iTunesMetadata.rawValue as NSString
    startTimeItem.key = AVMetadataKey.iTunesMetadataKeyStartDate.rawValue as NSString
    startTimeItem.value = startDate as NSString
    
    endTimeItem.identifier = AVMetadataIdentifier.iTunesMetadata.rawValue as NSString
    endTimeItem.key = AVMetadataKey.iTunesMetadataKeyEndDate.rawValue as NSString
    endTimeItem.value = endDate as NSString
    
    1. Agregue los objetos de metadatos al AVPlayerItem asociado con el AVPlayerViewController.
    let player = AVPlayer(url: // URL de su archivo HLS)
    let playerItem = AVPlayerItem(asset: playerAsset)
    playerItem.externalMetadata = [startTimeItem, endTimeItem]
    
    let playerVC = AVPlayerViewController()
    playerVC.player = player
    

    Esto debería agregar metadatos de hora de inicio y finalización al AVPlayerViewController para el archivo HLS que está reproduciendo.

    Espero que esta solución le sea útil!

Comments are closed.