Androïde : Position de la tête de lecture et durée de la vidéo

Dans cette rubrique, vous découvrirez les modifications apportées à la position de la tête de lecture et à la durée de la vidéo avec le SDK natif de Brightcove pour Android.

Aperçu

Dans les versions antérieures du Brightcove Native SDK pour Android, int et Integer les types de données ont été utilisés pour gérer les valeurs de position de la tête de lecture (y compris la position de recherche) et la durée de la vidéo.

Avec le SDK natif pour Android version 6.18.0, nous nous sommes alignés sur la ExoPlayer bibliothèque de gestion de ces valeurs. Le SDK natif a migré de l'utilisation int et Integer types de données à long et Long Types de données.

Dépréciation et remplacement

Cette migration implique deux processus :

  • Dépréciation de toutes les références aux valeurs de position int et de durée de la Integer tête de lecture, dans les membres de la classe et les méthodes
  • Création de nouveaux membres de classe et de nouvelles méthodes avec un Long suffixe sur leurs noms

Exemples

Voici quelques exemples de cette dépréciation et de ce remplacement :

Dans le ExoPlayerVideoDisplayComponent:

  • Obsolète : videoDisplayComponent.getLiveEdge()
  • Nouveau : videoDisplayComponent.getLiveEdgeLong()

Dans la Video classe :

  • Obsolète : video.getDuration()
  • Nouveau : video.getDurationLong()

Exigences

Les exigences suivantes sont nécessaires pour cette fonctionnalité :

  • SDK natif Brightcove pour Android 6.18.0 ou supérieur

Utilisation des nouveaux types de données

Même si le SDK natif Brightcove pour Android prend toujours en charge l'utilisation des types entiers, le remplacement de ces derniers marque un point de rupture pour les nouvelles versions. Par conséquent, nous vous recommandons de mettre en œuvre ces remplacements dans vos projets à l'avenir.

Exemples

Voici quelques exemples de nouveaux membres et de nouvelles méthodes :

Écoute de la position de la tête de lecture et de la durée de la vidéo

Map<String, Object> properties = new HashMap<>();
    properties.put(Event.PLAYHEAD_POSITION_LONG, exoPlayer.getCurrentPosition());
    properties.put(Event.VIDEO, getCurrentVideo());
    eventEmitter.emit(EventType.DID_STOP, properties);

Obtenir la position actuelle de la tête de lecture

long position = event.getLongProperty(Event.PLAYHEAD_POSITION_LONG);

Ou

long position = brightcoveVideoView.getVideoDisplay().getPlayerCurrentPosition();

Obtenir la durée de la vidéo

long duration = videoView.getVideoDisplay().getCurrentVideo().getDurationLong();

Ou

long duration = event.getLongProperty(Event.VIDEO_DURATION_LONG);

Classes et méthodes obsolètes

Les membres de classe et les méthodes suivants sont désormais obsolètes :

AbstractEvent classe

  • PLAYHEAD_POSITION
  • PROGRESS_BAR_PLAYHEAD_POSITION
  • ORIGINAL_PLAYHEAD_POSITION
  • VIDEO_DURATION
  • SEEK_DEFAULT
  • SEEK_POSITION
  • SEEK_PROGRESS
  • FROM_SEEK_POSITION
  • RESTORE_SEEK_POSITION
  • ORIGINAL_SEEK_POSITION
  • MIN_POSITION
  • MAX_POSITION
  • LIVE_WINDOW_DURATION
  • START_TIME
  • END_TIME

BaseVideoView classe

  • duration
  • playheadPosition
  • getDuration()
  • getCurrentPosition()
  • seekTo(int position)

VideoDisplayComponent classe

  • playheadPosition
  • getLiveEdge()

ExoPlayerVideoDisplayComponent classe

  • getLiveEdge()

GooglecastComponent classe

  • CAST_MEDIA_PLAY_POSITION

GoogleIMAComponent classe

  • setAdPosition(int position)
  • getContentPosition()
  • setContentPosition(int position)

OmnitureComponent classe

  • play(Integer position)
  • play(Integer position, boolean shouldIgnoreState)
  • stopPlayback(Integer position)
  • stopPlayback(Integer position, boolean shouldIgnoreState)

BrightcoveClosedCaption classe

  • Brightcove(int beginTime, int endTime, List<List<Span>> testLines)
  • Brightcove(int beginTime, int endTime, String caption)
  • getTimeRange()

TTMLParser classe

  • parseTimeValue(String value)

BrightcoveMediaController classe

  • getSeekBarOffset()

BrightcoveSeekBarController classe

  • getSeekBarOffset()
  • setSeekBarOffset(int offset)

MediaControllerConfig classe

  • setInitialDuration(int initialDuration)
  • setInitialPlayheadPosition(int initialPlayheadPosition)
  • getInitialDuration()
  • getInitialPlayheadPosition()

SeekButtonController classe

  • seekDefault
  • seekStartPosition
  • seekTargetPosition
  • getSeekDefault()
  • setSeekDefault()
  • computeTargetSeekPosition()

Block classe

  • beginTime
  • endTime
  • getBeginTime()
  • setBeginTime(Integer beginTime)
  • getEndTime()
  • setEndTime(Integer endTime)

CuePoint classe

  • CuePointType(int position, String type, Map<String, Object> properties)
  • CuePointType(int position, CuePointType type, Map<String, Object>)
  • getPosition()

Video classe

  • getDuration()

Video.Field classe

  • duration

BrightcoveClosedCaptioningView classe

  • TreeMap<Integer, ArrayList<TimeMapEntry>> captionsPerSecondMap
  • SparseArray<StringBuilder> currentCaptionBlockArray
  • int lastProgressTime
  • findCaptionsForPosition(int position)
  • refreshCaptions(int seekToTime)