Usar metadatos temporizados

Puede utilizar TimedMetadata cuando el tiempo de reproducción actual coincida con la hora de inicio.

Para utilizar estos TimedMetadata objetos guardados durante la reproducción, utilice los ArrayList guardados de Almacenar objetos de metadatos temporizados a medida que se envían.

  1. Ejecute un temporizador y consulte repetidamente el tiempo de reproducción actual.

  2. Busque todos los objetos TimedMetadata con tiempos de inicio que coincidan con el tiempo de reproducción actual.

    Puede utilizar estos objetos para completar varias acciones.

    IMPORTANTE

    Cuando compruebe si el tiempo de reproducción actual coincide con cualquier objeto TimedMetadata, incluya shouldTriggerSubscribedTagEvent como condición.

    La cronología puede cambiar como resultado de varios comportamientos publicitarios. Por ejemplo, es posible que se muevan una o más pausas publicitarias de sus posiciones originales en la cronología, pero shouldTriggerSubscribedTagEvent garantiza que la hora de inicio del objeto TimeMetadata coincida con la hora de reproducción actual.

    Por ejemplo:

     _playbackClockEventListener = new Clock.ClockEventListener() {
        @Override
        public void onTick(String name) {
            getActivity().runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    /* handle timedmetadata object list  */ 
                    if (_mediaPlayer != null && _timedMetadataList != null && _timedMetadataList.size() > 0) {
                        if (_lastKnownStatus == MediaPlayer.PlayerState.PLAYING) {
                            long localTime = _mediaPlayer.getLocalTime();
                            Iterator<TimedMetadata> iterator = _timedMetadataList.iterator(); 
                            while (iterator.hasNext()) {
                                TimedMetadata timedMetadata = iterator.next();
                                long diff = localTime - timedMetadata.getTime();
                                if (diff >= 0 &&
                                    diff <= PLAYBACK_CLOCK_INTERVAL &&
                                    _mediaPlayer.shouldTriggerSubscribedTagEvent()) {
                                    // use timed metadata object
                                }
                            }
                        }
                    }
                }
            });
        }
    };
    _playbackClock.addClockEventListener(_playbackClockEventListener);
    
  3. Elimine periódicamente instancias TimedMetadata obsoletas de la lista para evitar que la memoria crezca continuamente.

En esta página

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now