Android: Abspielkopfposition und Videodauer

In diesem Thema erfahren Sie mehr über Änderungen bei der Verwendung der Abspielkopfposition und der Videodauer mit dem Brightcove Native SDK für Android.

Überblick

In früheren Versionen des Brightcove Native SDK für Android int Und Integer Datentypen wurden verwendet, um Werte für die Abspielposition (einschließlich Suchposition) und die Videodauer zu verarbeiten.

Mit dem Native SDK für Android Version 6.18.0 haben wir uns an die ExoPlayer Bibliothek für den Umgang mit diesen Werten angepasst. Das Native SDK wurde von der Verwendung int von Integer Datentypen zu long Long Datentypen migriert.

Abschaffung und Ersatz

Diese Migration umfasst zwei Prozesse:

  • Verfall der Wertreferenzen „Alle int“ und „ Integer Playhead“ auf Position und Dauer in Klassenmitgliedern und Methoden
  • Erstellung neuer Klassenmitglieder und Methoden mit einem Long Postfix im Namen

Beispiele

Hier sind einige Beispiele für die Abschaffung und Ersetzung:

In der ExoPlayerVideoDisplayComponent:

  • Veraltet: videoDisplayComponent.getLiveEdge()
  • Neu: videoDisplayComponent.getLiveEdgeLong()

In der Video Klasse:

  • Veraltet: video.getDuration()
  • Neu: video.getDurationLong()

Voraussetzungen

Für diese Funktion werden die folgenden Anforderungen benötigt:

  • Natives Brightcove-SDK für Android 6.18.0 oder höher

Verwendung der neuen Datentypen

Auch wenn das Brightcove Native SDK für Android die Verwendung von Ganzzahltypen weiterhin unterstützt, stellt die Ersetzung dieser Typen eine Sollbruchstelle für neue Versionen dar. Wir empfehlen daher, diese Ersetzungen in Zukunft in Ihren Projekten zu implementieren.

Beispiele

Hier sind einige Beispiele für die neuen Mitglieder und Methoden:

Abspielkopfposition und Videodauer abhören

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);

Aktuelle Abspielkopfposition abfragen

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

Oder

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

Videodauer abrufen

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

Oder

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

Veraltete Klassen und Methoden

Die folgenden Klassenmitglieder und Methoden sind jetzt veraltet:

AbstractEvent Klasse

  • 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 Klasse

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

VideoDisplayComponent Klasse

  • playheadPosition
  • getLiveEdge()

ExoPlayerVideoDisplayComponent Klasse

  • getLiveEdge()

GooglecastComponent Klasse

  • CAST_MEDIA_PLAY_POSITION

GoogleIMAComponent Klasse

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

OmnitureComponent Klasse

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

BrightcoveClosedCaption Klasse

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

TTMLParser Klasse

  • parseTimeValue(String value)

BrightcoveMediaController Klasse

  • getSeekBarOffset()

BrightcoveSeekBarController Klasse

  • getSeekBarOffset()
  • setSeekBarOffset(int offset)

MediaControllerConfig Klasse

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

SeekButtonController Klasse

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

Block Klasse

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

CuePoint Klasse

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

Video Klasse

  • getDuration()

Video.Field Klasse

  • duration

BrightcoveClosedCaptioningView Klasse

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