Source: externs/shaka/ads.js

  1. /*! @license
  2. * Shaka Player
  3. * Copyright 2016 Google LLC
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. /**
  7. * @externs
  8. */
  9. /**
  10. * @typedef {{
  11. * loadTimes: !Array.<number>,
  12. * started: number,
  13. * playedCompletely: number,
  14. * skipped: number
  15. * }}
  16. *
  17. * @description
  18. * Contains statistics and information about the current state of the player.
  19. *
  20. * @property {number} loadTimes
  21. * The set of amounts of time it took to get the final manifest.
  22. * @property {number} started
  23. * The number of ads started.
  24. * @property {number} playedCompletely
  25. * The number of ads played completely.
  26. * @property {number} skipped
  27. * The number of ads skipped.
  28. * @exportDoc
  29. */
  30. shaka.extern.AdsStats;
  31. /**
  32. * An object that's responsible for all the ad-related logic
  33. * in the player.
  34. *
  35. * @interface
  36. * @exportDoc
  37. */
  38. shaka.extern.IAdManager = class extends EventTarget {
  39. /**
  40. * @param {string} locale
  41. */
  42. setLocale(locale) {}
  43. release() {}
  44. onAssetUnload() {}
  45. /**
  46. * @param {!HTMLElement} adContainer
  47. * @param {!HTMLMediaElement} video
  48. */
  49. initClientSide(adContainer, video) {}
  50. /**
  51. * @param {!google.ima.AdsRequest} imaRequest
  52. */
  53. requestClientSideAds(imaRequest) {}
  54. /**
  55. * @param {!HTMLElement} adContainer
  56. * @param {!HTMLMediaElement} video
  57. */
  58. initServerSide(adContainer, video) {}
  59. /**
  60. * @param {!google.ima.dai.api.StreamRequest} imaRequest
  61. * @param {string=} backupUrl
  62. * @return {!Promise.<!string>}
  63. */
  64. requestServerSideStream(imaRequest, backupUrl) {}
  65. /**
  66. * @param {Object} adTagParameters
  67. */
  68. replaceServerSideAdTagParameters(adTagParameters) {}
  69. /**
  70. * Get statistics for the current playback session. If the player is not
  71. * playing content, this will return an empty stats object.
  72. */
  73. getStats() {}
  74. /**
  75. * @param {shaka.extern.TimelineRegionInfo} region
  76. */
  77. onDashTimedMetadata(region) {}
  78. /**
  79. * @param {shaka.extern.ID3Metadata} metadata
  80. * @param {number} timestampOffset
  81. */
  82. onHlsTimedMetadata(metadata, timestampOffset) {}
  83. /**
  84. * @param {shaka.extern.ID3Metadata} value
  85. */
  86. onCueMetadataChange(value) {}
  87. };
  88. /**
  89. * A factory for creating the ad manager.
  90. *
  91. * @typedef {function():!shaka.extern.IAdManager}
  92. * @exportDoc
  93. */
  94. shaka.extern.IAdManager.Factory;
  95. /**
  96. * Interface for Ad objects.
  97. *
  98. * @extends {shaka.util.IReleasable}
  99. * @interface
  100. * @exportDoc
  101. */
  102. shaka.extern.IAd = class {
  103. /**
  104. * @return {number}
  105. */
  106. getDuration() {}
  107. /**
  108. * Gets the minimum suggested duration. Defaults to being equivalent to
  109. * getDuration() for server-side ads.
  110. * @see http://bit.ly/3q3U6hI
  111. * @return {number}
  112. */
  113. getMinSuggestedDuration() {}
  114. /**
  115. * @return {number}
  116. */
  117. getRemainingTime() {}
  118. /**
  119. * @return {number}
  120. */
  121. getTimeUntilSkippable() {}
  122. /**
  123. * @return {boolean}
  124. */
  125. isPaused() {}
  126. /**
  127. * @return {boolean}
  128. */
  129. isSkippable() {}
  130. /**
  131. * @return {boolean}
  132. */
  133. canSkipNow() {}
  134. skip() {}
  135. play() {}
  136. pause() {}
  137. /**
  138. * @return {number}
  139. */
  140. getVolume() {}
  141. /**
  142. * @param {number} volume
  143. */
  144. setVolume(volume) {}
  145. /**
  146. * @return {boolean}
  147. */
  148. isMuted() {}
  149. /**
  150. * @param {boolean} muted
  151. */
  152. setMuted(muted) {}
  153. /**
  154. * @param {number} width
  155. * @param {number} height
  156. */
  157. resize(width, height) {}
  158. /**
  159. * @return {number}
  160. */
  161. getSequenceLength() {}
  162. /**
  163. * @return {number}
  164. */
  165. getPositionInSequence() {}
  166. };