Current release
Version 2.0.0
18 Sep 2024
Changed:
- Changed Brightcove's EPA requests
Authorization
header toBcov-Auth
. - The
bcPlayer.closeOnBack
field is now a string. The supported values aresoft
,hard
andoff
. - Changed the default
bcPlayer.LogLevel
field value to0
. - The
bcPlayer.width
andbcPlayer.height
fields values now default to the screen resolution. - The
bcPlayer.on.playlistIndex
event now reflects thebcPlayer.playback.index
field from the new custom playlist implementation. - The
bcPlayer.on.close
event 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
position
supported values are nowreplace
,append
andprepend
. - Added the
prebuffer
option to control whether it should prebuffer the video or start playback.
- The
- The
bcPlayer.loadCustom()
function now applies the specifiedposition
option. - 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
bcAPI
features right after creating a node instance without having to observe itsready
field. - (CSAS) RAF's
setAdPrefs()
maxRequests
property now defaults to5
. - The
play_request
Data Collection event is now only triggered once per video playback session.
Fixed
- (CSAI) Fixed RAF's
setAdConstraints()
being set whenbcPlayer.csai.adConstraints
is 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_id
andconfig_id
Playback API parameters. - Fixed request refresh not allowing pending HTTP requests to complete before closing.
- Fixed the
seq
andrange
Data Collection metric values. - Fixed the
bcPlayer.analytics.eventOut
not providing the event name. - Fixed the
application/vnd.apple.mpegurl
Brightcove sources not being recognized as HLS.
Added
- Added the missing
event
property inbcPlayer.analytics.eventOut
. - Added the following
bcPlayer.on
events: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
reqParams
field into Brightcove videos ContentNodes. This field contains the Playback API request query parameters. Applicable to both thebcPlayer
andbcAPI
components. - Added support for audio-only MP4 sources.
- Added the
bcPlayer.retryOnBufferTimeout
configuration field, allowing the retry function to be configured to trigger upon a buffering timeout. - Added the
bcPlayer.relativePosition
read-only field which specifies the relative playback position when playing SSAI videos. - Added the
bcPlayer.closeOnFinished
field. The supported values aresoft
,hard
, andoff
. - Added the
bcPlayer.enableGsc
field to toggle the Generic Stream Concurrency feature on and off. - Added the
bcPlayer.visibleOnScreen
read-only field which specifies if the bcPlayer node is visible in the screen based on its size, position, andvisible
andopacity
fields. - 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.playback
node. - Added support for Brightcove's Generic Stream Concurrency feature.
- Added the next and previous playlist buttons into the
Video.pivotNode
node whenbcPlayer.enableUI
is enabled. - Added the
prebuffer
option to thebcPlayer.load()
function. - Added the following properties to the
bcPlayer.on.load
event data:autoplay
– specifies thebcPlayer.load()
orloadCustom()
autoplay
option value.prebuffer
– specifies thebcPlayer.load()
orloadCustom()
prebuffer
option value.position
– specifies thebcPlayer.load()
orloadCustom()
position
option 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
–ondemand
for VOD,live
for 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.playback
field. - Removed the
bcPlayer.playback()
function as playback functions can now be accessed through thebcPlayer.playback
field. - Removed the following
bcPlayer.csai
fields:useCSAS
– it wasn't used as only CSAS implementation is currently supported.closeOnFinish
– replaced by thebcPlayer.closeOnFinish
field.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
enableInPodStitching
configuration 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.playback
node 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.index
field 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_id
property is now required by the bcPlayerload
function to load Brightcove videos metadata. This property value must match the bcPlayercredentials.account_id
config value. - Renamed the bcPlayer
addSource
function toloadCustom
and changed the following items in this function:- Added the
autoplay
options property to specify the index that should start playing once the metadata is loaded. Defaults to 0, plays the first item. - Added the
prebuffer
options property to specify whether it should preload the stream or start the playback. Only applicable to single videos. - Removed the
position
options property.loadCustom
will always replace the existing content. loadCustom
now also triggers a bcPlayeron.load
event.
- Added the
- Renamed the bcPlayer
on.play
event toon.playing
. This event is triggered when the Video state is set toplaying
. - Added the property
reason
to the bcPlayeron.finished
event 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
toString
function not properly formatting Associative Arrays and Arrays.
Added
- Added bcPlayer
on.isHidden
event: indicates if the bcPlayer node is completely hidden based on the renderTracking value. - Added bcPlayer
sdkVersion
field: provides the SDK version number. - Added bcPlayer
voiceControls
field: 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
adPlaying
field: indicates if an ad is playing. - Added support for Brightcove Analytics.
- Added bcPlayer
analytics
field 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_name
parameter. Useful for metrics filtering purposes.viewerId
: used to build theplayer_name
parameter. Useful for metrics filtering purposes.user
: specifies a user identification.orientation
: specifies thedestination
parameter.source
: specifies thesource
parameter.eventOut
: [read-only] allows access to all the events data every time an event is triggered.
- Added bcPlayer
- The following events are supported:
player_load
player_ready
catalog_request
catalog_response
catalog_error
video_impression
play_request
video_view
video_engagement
ad_mode_begin
ad_mode_complete
- Added support for Brightcove SSAI
- SSAI playback is not supported with native playlists.
- Added bcPlayer
ssai
field 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 ContentNodeid
field is used instead.contentGenre
: specifies the RAF.setContentGenre() parameter. If not provided, the video ContentNodeCategories
ortags
field is used instead.contentLength
: specifies the RAF.setContentLength() parameter. If not provided, the video ContentNodeLength
field is used instead. It's set to a value of999999
in 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
playback
function. - Added bcPlayer
csai
field 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()maxRequests
parameter.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()childDirected
parameter. Defaults tofalse
.contentId
: specifies the RAF.setContentId() parameter. If not provided, the video ContentNodeid
field is used instead.contentGenre
: specifies the RAF.setContentGenre() parameter. If not provided, the video ContentNodeCategories
ortags
field is used instead.contentLength
: specifies the RAF.setContentLength() parameter. If not provided, the video ContentNodeLength
field is used instead. It's set to a value of999999
in Live videos.
adConstraints
: specifies RAF.setAdConstraints() parameters.event
: [read-only] allows access to all the playback and ads related events.
- Added support for the
seek
action in the bcPlayerplayback
function. - 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
validate
function is now able to verify other property types in thetype
map property (if notstring
,number
,boolean
,array
,node
oraa
).
Deprecated
- Removed bcPlayer
setSources
function. Alternatively theloadCustom
function should be used to load custom sources. - Removed the
startsWith
andendsWith
Utils functions as these are already available as native functions.