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
intet de durée de laIntegertê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
Longsuffixe 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_POSITIONPROGRESS_BAR_PLAYHEAD_POSITIONORIGINAL_PLAYHEAD_POSITIONVIDEO_DURATIONSEEK_DEFAULTSEEK_POSITIONSEEK_PROGRESSFROM_SEEK_POSITIONRESTORE_SEEK_POSITIONORIGINAL_SEEK_POSITIONMIN_POSITIONMAX_POSITIONLIVE_WINDOW_DURATIONSTART_TIMEEND_TIME
BaseVideoView classe
durationplayheadPositiongetDuration()getCurrentPosition()seekTo(int position)
VideoDisplayComponent classe
playheadPositiongetLiveEdge()
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
seekDefaultseekStartPositionseekTargetPositiongetSeekDefault()setSeekDefault()computeTargetSeekPosition()
Block classe
beginTimeendTimegetBeginTime()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>> captionsPerSecondMapSparseArray<StringBuilder> currentCaptionBlockArrayint lastProgressTimefindCaptionsForPosition(int position)refreshCaptions(int seekToTime)