Current release
Version 2.0.0
18 Sep 2024
Changed:
- Changed Brightcove's EPA requests
Authorizationheader toBcov-Auth. - The
bcPlayer.closeOnBackfield is now a string. The supported values aresoft,hardandoff. - Changed the default
bcPlayer.LogLevelfield value to0. - The
bcPlayer.widthandbcPlayer.heightfields values now default to the screen resolution. - The
bcPlayer.on.playlistIndexevent now reflects thebcPlayer.playback.indexfield from the new custom playlist implementation. - The
bcPlayer.on.closeevent data is now an AssociativeArray object that specifies what type of close action was executed. - Changed the following options in the
bcPlayer.load()function:- The
positionsupported values are nowreplace,appendandprepend. - Added the
prebufferoption to control whether it should prebuffer the video or start playback.
- The
- The
bcPlayer.loadCustom()function now applies the specifiedpositionoption. - Switched the order of the debug and verbose log levels in the Logger component. Verbose is now 4 and debug is now 3. This change means that verbose is the new default log level.
- It's now possible to access
bcAPIfeatures right after creating a node instance without having to observe itsreadyfield. - (CSAS) RAF's
setAdPrefs()maxRequestsproperty now defaults to5. - The
play_requestData Collection event is now only triggered once per video playback session.
Fixed
- (CSAI) Fixed RAF's
setAdConstraints()being set whenbcPlayer.csai.adConstraintsis set to{}(the default value). - Fixed Brightcove DRM sources filtering.
- Fixed v7 HLSe sources manifest support.
- Fixed the sources fresh not reusing the original
ad_config_idandconfig_idPlayback API parameters. - Fixed request refresh not allowing pending HTTP requests to complete before closing.
- Fixed the
seqandrangeData Collection metric values. - Fixed the
bcPlayer.analytics.eventOutnot providing the event name. - Fixed the
application/vnd.apple.mpegurlBrightcove sources not being recognized as HLS.
Added
- Added the missing
eventproperty inbcPlayer.analytics.eventOut. - Added the following
bcPlayer.onevents:pause– triggered when video playback is paused.loadItem– triggered when a new video is loaded.closed– triggered when the bcPlayer closes completely.timeout– triggered when buffering times out, when enabled.
- Added the
reqParamsfield into Brightcove videos ContentNodes. This field contains the Playback API request query parameters. Applicable to both thebcPlayerandbcAPIcomponents. - Added support for audio-only MP4 sources.
- Added the
bcPlayer.retryOnBufferTimeoutconfiguration field, allowing the retry function to be configured to trigger upon a buffering timeout. - Added the
bcPlayer.relativePositionread-only field which specifies the relative playback position when playing SSAI videos. - Added the
bcPlayer.closeOnFinishedfield. The supported values aresoft,hard, andoff. - Added the
bcPlayer.enableGscfield to toggle the Generic Stream Concurrency feature on and off. - Added the
bcPlayer.visibleOnScreenread-only field which specifies if the bcPlayer node is visible in the screen based on its size, position, andvisibleandopacityfields. - Added support for CSAS on SSAI videos streams (pre-rolls only).
- Added support for both CSAS and SSAI on playlist videos.
- Added a new custom playlist implementation which can be controlled through the
bcPlayer.playbacknode. - Added support for Brightcove's Generic Stream Concurrency feature.
- Added the next and previous playlist buttons into the
Video.pivotNodenode whenbcPlayer.enableUIis enabled. - Added the
prebufferoption to thebcPlayer.load()function. - Added the following properties to the
bcPlayer.on.loadevent data:autoplay– specifies thebcPlayer.load()orloadCustom()autoplayoption value.prebuffer– specifies thebcPlayer.load()orloadCustom()prebufferoption value.position– specifies thebcPlayer.load()orloadCustom()positionoption value.
- Added support for Brightcove Ad Insight events and metrics.
- Added the following Brightcove Data Collection metrics:
ip_address– the hop device external IP address.user_agent– Roku's user-agent value as perroUrlTransfer.GetUserAgent().platform– hardcoded toroku-sdk.content_type– hardcoded tovideo.delivery_type–ondemandfor VOD,livefor live streams.real_time_ms– playback start time.load_time_ms– video load time.
Deprecated
- Removed the
bcPlayer.playlist()function as playlist functions can now be accessed through thebcPlayer.playbackfield. - Removed the
bcPlayer.playback()function as playback functions can now be accessed through thebcPlayer.playbackfield. - Removed the following
bcPlayer.csaifields:useCSAS– it wasn't used as only CSAS implementation is currently supported.closeOnFinish– replaced by thebcPlayer.closeOnFinishfield.enableJIT– it was only applicable to the custom CSAI implementation (currently only CSAS is supported).enableInPodStitching– it was only applicable to the custom CSAI implementation (currently only CSAS is supported).
- Removed CSAS RAF's
enableInPodStitchingconfiguration as it's only applicable to the custom CSAI implementation (currently only CSAS is supported). - The native Video playlist setup is no longer supported. The
bcPlayer.playbacknode should instead be used to setup and manage playlists. The following alternatives are provided to the most common playlist related Video fields:Video.contentIsPlaylist– thebcPlayer.playback.callFunc("is", "playlist")solution should be used instead.Video.playlistIndex– thebcPlayer.playback.indexfield should be used instead.Video.nextContentIndex– thebcPlayer.playback.callFunc("playNext"),bcPlayer.playback.callFunc("playPrevious")orbcPlayer.playback.callFunc("play")solutions should be used instead.
Previous releases
Version 1.0.0
01 May 2024
Changed
- The
account_idproperty is now required by the bcPlayerloadfunction to load Brightcove videos metadata. This property value must match the bcPlayercredentials.account_idconfig value. - Renamed the bcPlayer
addSourcefunction toloadCustomand changed the following items in this function:- Added the
autoplayoptions property to specify the index that should start playing once the metadata is loaded. Defaults to 0, plays the first item. - Added the
prebufferoptions property to specify whether it should preload the stream or start the playback. Only applicable to single videos. - Removed the
positionoptions property.loadCustomwill always replace the existing content. loadCustomnow also triggers a bcPlayeron.loadevent.
- Added the
- Renamed the bcPlayer
on.playevent toon.playing. This event is triggered when the Video state is set toplaying. - Added the property
reasonto the bcPlayeron.finishedevent data, specifying what caused the stream to finish. The possible values are:stopped: the playback has been interrupted either by the user or another operation.finished: the playback has completed. It either reached the end of the stream or a playback error occurred.
Fixed
- Fixed the Utils
toStringfunction not properly formatting Associative Arrays and Arrays.
Added
- Added bcPlayer
on.isHiddenevent: indicates if the bcPlayer node is completely hidden based on the renderTracking value. - Added bcPlayer
sdkVersionfield: provides the SDK version number. - Added bcPlayer
voiceControlsfield: toggles custom voice controls handling on/off (currently only the "next" voice command is handled by the bcPlayer, all other commands are handled natively by the Video node). - Added
adPlayingfield: indicates if an ad is playing. - Added support for Brightcove Analytics.
- Added bcPlayer
analyticsfield which allows for some BC Analytics parameters to be customized:accountId: specifies the Videocloud account ID used in the Analytics events. If not set, the bcPlayer credentials are used.url: specifies a different URL where the BC Analytics metrics should be redirected to. Useful for debugging purposes.applicationID: used to denote a specific instance or application of a player.env: specifies the Brightcove Analytics API environment. Defaults toproduction.playerId: used to build theplayer_nameparameter. Useful for metrics filtering purposes.viewerId: used to build theplayer_nameparameter. Useful for metrics filtering purposes.user: specifies a user identification.orientation: specifies thedestinationparameter.source: specifies thesourceparameter.eventOut: [read-only] allows access to all the events data every time an event is triggered.
- Added bcPlayer
- The following events are supported:
player_loadplayer_readycatalog_requestcatalog_responsecatalog_errorvideo_impressionplay_requestvideo_viewvideo_engagementad_mode_beginad_mode_complete
- Added support for Brightcove SSAI
- SSAI playback is not supported with native playlists.
- Added bcPlayer
ssaifield which allows for some SSAI parameters to be customized:enabled: enabled or disable SSAI handling.enabledDiscontinuities: toggles playback with Discontinuities in HLS & MultiPeriods in Dash. More info here.adMeasurements: allows the ad measurement parameters to be overridden. If set to invalid, RAF.enabledAdMeasurements() will be disabled. If set to an AssocArray, the following optional properties are supported:childDirected: specifies the RAF.setContentGenre() childDirected parameter. Defaults tofalse.contentId: specifies the RAF.setContentId() parameter. If not provided, the video ContentNodeidfield is used instead.contentGenre: specifies the RAF.setContentGenre() parameter. If not provided, the video ContentNodeCategoriesortagsfield is used instead.contentLength: specifies the RAF.setContentLength() parameter. If not provided, the video ContentNodeLengthfield is used instead. It's set to a value of999999in Live videos.bcovToken: specifies the token used to authorize playback of HLSe streams protected by Brightcove's Playback Authorization Service.macros: specifies the list of macros and respective values that will be replaced in the VMAP ad tag. These only apply to the variables specified as{url.*}in the VMAP ad tag. More info here.event: [read-only] allows access to all the ads related events.
- Added support for CSAI through RAF's CSAS implementation.
- CSAI playback is not supported with native playlists.
- CSAI does not support the Retry Playback feature.
- Playback control over CSAI streams should be done through the bcPlayer
playbackfunction. - Added bcPlayer
csaifield which allows for some CSAI parameters to be customized:enabled: enabled or disable CSAI handling.useCSAS: use RAF's CSAS implementation (WIP: changing this setting has no effect. It's always enabled).closeOnFinish: specifies if the bcPlayer should close when a CSAI source playback finishes.maxRequests: specifies RAF.setAdPrefs()maxRequestsparameter.enableJIT: specifies RAF.enableJITPods() parameter.enableInPodStitching: [WIP] not supported.adMeasurements: allows the ad measurement parameters to be overridden. If set to invalid, RAF.enableAdMeasurements() will be disabled. If set to an AssocArray, the following optional properties are supported:childDirected: specifies the RAF.setContentGenre()childDirectedparameter. Defaults tofalse.contentId: specifies the RAF.setContentId() parameter. If not provided, the video ContentNodeidfield is used instead.contentGenre: specifies the RAF.setContentGenre() parameter. If not provided, the video ContentNodeCategoriesortagsfield is used instead.contentLength: specifies the RAF.setContentLength() parameter. If not provided, the video ContentNodeLengthfield is used instead. It's set to a value of999999in Live videos.
adConstraints: specifies RAF.setAdConstraints() parameters.event: [read-only] allows access to all the playback and ads related events.
- Added support for the
seekaction in the bcPlayerplaybackfunction. - Added the following Utils functions:
isFunction: verifies if a variable is a Function.toDouble: converts a string value to a Double value.setAddFields: adds new fields / updates existing fields values in the specified Node.addURLParams: adds the specified key-value params into the URL provided. It does not check if params already exist in the URL.
- The Utils
validatefunction is now able to verify other property types in thetypemap property (if notstring,number,boolean,array,nodeoraa).
Deprecated
- Removed bcPlayer
setSourcesfunction. Alternatively theloadCustomfunction should be used to load custom sources. - Removed the
startsWithandendsWithUtils functions as these are already available as native functions.