UNPKG

shaka-player

Version:
278 lines (238 loc) 3.05 kB
/*! @license * Shaka Player * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */ goog.provide('shaka.ads.AbstractAd'); /** * @abstract * @implements {shaka.extern.IAd} * @export */ shaka.ads.AbstractAd = class { /** * @param {HTMLMediaElement=} video */ constructor(video = null) { /** @protected {HTMLMediaElement} */ this.video = video; } /** * @override */ needsSkipUI() { return true; } /** * @override */ isClientRendering() { return true; } /** * @override */ hasCustomClick() { return false; } /** * @override */ isUsingAnotherMediaElement() { return false; } /** * @override */ getDuration() { return -1; } /** * @override */ getMinSuggestedDuration() { return this.getDuration(); } /** * @override */ getRemainingTime() { return -1; } /** * @override */ isPaused() { return this.video ? this.video.paused : false; } /** * @override */ isSkippable() { return false; } /** * @override */ getTimeUntilSkippable() { return 0; } /** * @override */ canSkipNow() { return false; } /** * @override */ skip() { // Nothing } /** * @override */ pause() { if (this.video) { this.video.pause(); } } /** * @override */ play() { if (this.video) { this.video.play(); } } /** * @override */ getVolume() { return this.video ? this.video.volume : 1; } /** * @override */ setVolume(volume) { if (this.video) { this.video.volume = volume; } } /** * @override */ isMuted() { return this.video ? this.video.muted : false; } /** * @override */ isLinear() { return true; } /** * @override */ resize(width, height) { // Nothing } /** * @override */ setMuted(muted) { if (this.video) { this.video.muted = muted; } } /** * @override */ getSequenceLength() { return 1; } /** * @override */ getPositionInSequence() { return 1; } /** * @override */ getTitle() { return ''; } /** * @override */ getDescription() { return ''; } /** * @override */ getVastMediaBitrate() { return 0; } /** * @override */ getVastMediaHeight() { return 0; } /** * @override */ getVastMediaWidth() { return 0; } /** * @override */ getVastAdId() { return ''; } /** * @override */ getAdId() { return ''; } /** * @override */ getCreativeAdId() { return ''; } /** * @override */ getAdvertiserName() { return ''; } /** * @override */ getMediaUrl() { return null; } /** * @override */ getTimeOffset() { return 0; } /** * @override */ getPodIndex() { return 0; } /** * @override */ release() { this.video = null; } };