概覽
在適用於 Android 的 Brightcove Native SDK 的早期版本中,int
和Integer
數據類型用於處理播放頭位置(包括搜索位置)和視頻持續時間的值。
借助適用於 Android 的 Native SDK 版本 6.18.0,我們已與ExoPlayer
處理這些值的庫。本機 SDK 已從使用遷移int
和Integer
數據類型long
和Long
數據類型。
棄用和替換
此遷移涉及兩個過程:
- 全部棄用
int
和Integer
類成員和方法中的播放頭位置和持續時間值引用 - 創建新的類成員和方法
Long
他們名字的後綴
範例
以下是此棄用和替換的一些示例:
在裡面ExoPlayerVideoDisplayComponent
:
- 棄用:
videoDisplayComponent.getLiveEdge()
- 新的:
videoDisplayComponent.getLiveEdgeLong()
在裡面Video
班級:
- 棄用:
video.getDuration()
- 新的:
video.getDurationLong()
需求
此功能需要滿足以下要求:
- 適用於 Android 6.18.0 或更高版本的 Brightcove Native SDK
使用新的數據類型
儘管適用於 Android 的 Brightcove Native SDK 仍然支持使用整數類型,但替換這些類型標誌著新版本的突破點。因此,我們建議在您未來的項目中實施這些替換。
範例
以下是新成員和方法的一些示例:
聆聽播放頭位置和視頻持續時間
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);
獲取當前播放頭位置
long position = event.getLongProperty(Event.PLAYHEAD_POSITION_LONG);
或者
long position = brightcoveVideoView.getVideoDisplay().getPlayerCurrentPosition();
獲取視頻時長
long duration = videoView.getVideoDisplay().getCurrentVideo().getDurationLong();
或者
long duration = event.getLongProperty(Event.VIDEO_DURATION_LONG);
棄用的類和方法
現在不推薦使用以下類成員和方法:
AbstractEvent
班級
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
班級
duration
playheadPosition
getDuration()
getCurrentPosition()
seekTo(int position)
VideoDisplayComponent
班級
playheadPosition
getLiveEdge()
ExoPlayerVideoDisplayComponent
班級
getLiveEdge()
GooglecastComponent
班級
CAST_MEDIA_PLAY_POSITION
GoogleIMAComponent
班級
setAdPosition(int position)
getContentPosition()
setContentPosition(int position)
OmnitureComponent
班級
play(Integer position)
play(Integer position, boolean shouldIgnoreState)
stopPlayback(Integer position)
stopPlayback(Integer position, boolean shouldIgnoreState)
BrightcoveClosedCaption
班級
Brightcove(int beginTime, int endTime, List<List<Span>> testLines)
Brightcove(int beginTime, int endTime, String caption)
getTimeRange()
TTMLParser
班級
parseTimeValue(String value)
BrightcoveMediaController
班級
getSeekBarOffset()
BrightcoveSeekBarController
班級
getSeekBarOffset()
setSeekBarOffset(int offset)
MediaControllerConfig
班級
setInitialDuration(int initialDuration)
setInitialPlayheadPosition(int initialPlayheadPosition)
getInitialDuration()
getInitialPlayheadPosition()
SeekButtonController
班級
seekDefault
seekStartPosition
seekTargetPosition
getSeekDefault()
setSeekDefault()
computeTargetSeekPosition()
Block
班級
beginTime
endTime
getBeginTime()
setBeginTime(Integer beginTime)
getEndTime()
setEndTime(Integer endTime)
CuePoint
班級
CuePointType(int position, String type, Map<String, Object> properties)
CuePointType(int position, CuePointType type, Map<String, Object>)
getPosition()
Video
班級
getDuration()
Video.Field
班級
duration
BrightcoveClosedCaptioningView
班級
TreeMap<Integer, ArrayList<TimeMapEntry>> captionsPerSecondMap
SparseArray<StringBuilder> currentCaptionBlockArray
int lastProgressTime
findCaptionsForPosition(int position)
refreshCaptions(int seekToTime)