diff --git a/src/playbacks/html5_video/html5_video.js b/src/playbacks/html5_video/html5_video.js
index 7ead0216..1ddcc1a9 100644
--- a/src/playbacks/html5_video/html5_video.js
+++ b/src/playbacks/html5_video/html5_video.js
@@ -43,6 +43,7 @@ export default class HTML5Video extends Playback {
get name() { return 'html5_video' }
get supportedVersion() { return { min: VERSION } }
get tagName() { return this.isAudioOnly ? 'audio' : 'video' }
+ get template() { return template(tracksHTML) }
get isAudioOnly() {
const resourceUrl = this.options.src
@@ -230,6 +231,7 @@ export default class HTML5Video extends Playback {
}
_onLoadedMetadata(e) {
+ this._ready()
this._handleBufferingEvents()
this.trigger(Events.PLAYBACK_LOADEDMETADATA, { duration: e.target.duration, data: e })
this._updateSettings()
@@ -565,8 +567,7 @@ export default class HTML5Video extends Playback {
}
_ready() {
- if (this._isReadyState)
- return
+ if (this._isReadyState) return
this._isReadyState = true
this.trigger(Events.PLAYBACK_READY, this.name)
@@ -649,24 +650,13 @@ export default class HTML5Video extends Playback {
})
}
- get template() { return template(tracksHTML) }
-
render() {
- if (this.options.playback.disableContextMenu) {
- this.$el.on('contextmenu', () => {
- return false
- })
- }
-
- if (this._externalTracks && this._externalTracks.length > 0) {
- this.$el.html(this.template({
- tracks: this._externalTracks,
- }))
- }
+ this.options.playback.disableContextMenu && this.$el.on('contextmenu', () => { return false })
+ this._externalTracks && this._externalTracks.length > 0 && this.$el.html(this.template({ tracks: this._externalTracks }))
- this._ready()
const style = Styler.getStyleFor(HTML5VideoStyle.toString(), { baseUrl: this.options.baseUrl })
this.$el.append(style[0])
+
return this
}
}
diff --git a/src/playbacks/html5_video/html5_video.test.js b/src/playbacks/html5_video/html5_video.test.js
index 87883175..12310eac 100644
--- a/src/playbacks/html5_video/html5_video.test.js
+++ b/src/playbacks/html5_video/html5_video.test.js
@@ -609,4 +609,14 @@ describe('HTML5Video playback', function() {
expect(html5Video._updateDvr).toHaveBeenCalledWith(true)
})
})
+
+ describe('_onLoadedMetadata callback', () => {
+ test('calls _ready method', () => {
+ const playback = new HTML5Video({ src: '/test/fixtures/SampleVideo_360x240_1mb.mp4' })
+ jest.spyOn(playback, '_ready')
+ playback.el.dispatchEvent(new Event('loadedmetadata'))
+
+ expect(playback._ready).toHaveBeenCalledTimes(1)
+ })
+ })
})