@mediakind/mkplayer 1.0.23 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (278) hide show
  1. package/README.md +84 -121
  2. package/bin/mkplayer-ui.css +12 -0
  3. package/bin/mkplayer.js +1 -0
  4. package/docs/.nojekyll +1 -0
  5. package/docs/assets/highlight.css +141 -0
  6. package/docs/assets/main.js +58 -0
  7. package/docs/assets/search.js +1 -0
  8. package/docs/assets/style.css +1367 -0
  9. package/docs/enums/MKAdQuartile.html +219 -0
  10. package/docs/enums/MKAdType.html +227 -0
  11. package/docs/enums/MKBufferType.html +207 -0
  12. package/docs/enums/MKDrmType.html +227 -0
  13. package/docs/enums/MKHttpRequestType.html +290 -0
  14. package/docs/enums/MKHttpResponseType.html +220 -0
  15. package/docs/enums/MKLatencyMode.html +227 -0
  16. package/docs/enums/MKLiveSynchronizationMethod.html +219 -0
  17. package/docs/enums/MKLogLevel.html +221 -0
  18. package/docs/enums/MKMediaType.html +201 -0
  19. package/docs/enums/MKMetadataType.html +255 -0
  20. package/docs/enums/MKPlatformType.html +201 -0
  21. package/docs/enums/MKPlayerEvent.html +945 -0
  22. package/docs/enums/MKProgramRestrictionType.html +259 -0
  23. package/docs/enums/MKRttEstimationMethod.html +208 -0
  24. package/docs/enums/MKSourceType.html +235 -0
  25. package/docs/enums/MKStartOffsetTimelineReference.html +211 -0
  26. package/docs/enums/MKStreamType.html +227 -0
  27. package/docs/enums/MKTimeMode.html +209 -0
  28. package/docs/enums/MKViewMode.html +210 -0
  29. package/docs/index.html +224 -0
  30. package/docs/interfaces/MKAdBreakFinishedEvent.html +227 -0
  31. package/docs/interfaces/MKAdBreakStartedEvent.html +259 -0
  32. package/docs/interfaces/MKAdClickThrough.html +243 -0
  33. package/docs/interfaces/MKAdCompanion.html +185 -0
  34. package/docs/interfaces/MKAdCompanionEvent.html +235 -0
  35. package/docs/interfaces/MKAdFinishedEvent.html +227 -0
  36. package/docs/interfaces/MKAdMarkerEvent.html +227 -0
  37. package/docs/interfaces/MKAdQuartileEvent.html +235 -0
  38. package/docs/interfaces/MKAdStartedEvent.html +284 -0
  39. package/docs/interfaces/MKAdaptationConfig.html +339 -0
  40. package/docs/interfaces/MKAdaptationData.html +225 -0
  41. package/docs/interfaces/MKAdaptationEvent.html +230 -0
  42. package/docs/interfaces/MKAdaptationPlatformConfig.html +215 -0
  43. package/docs/interfaces/MKAirplayChangedEvent.html +246 -0
  44. package/docs/interfaces/MKAnalyticsConfig.html +383 -0
  45. package/docs/interfaces/MKAspectRatioChangedEvent.html +235 -0
  46. package/docs/interfaces/MKAudioAdaptationData.html +226 -0
  47. package/docs/interfaces/MKAudioAdaptationEvent.html +228 -0
  48. package/docs/interfaces/MKAudioChangedEvent.html +254 -0
  49. package/docs/interfaces/MKAudioDownloadQualityChangeEvent.html +255 -0
  50. package/docs/interfaces/MKAudioDownloadQualityChangedEvent.html +255 -0
  51. package/docs/interfaces/MKAudioPlaybackQualityChangedEvent.html +237 -0
  52. package/docs/interfaces/MKAudioQuality.html +244 -0
  53. package/docs/interfaces/MKAudioQualityChangedEvent.html +255 -0
  54. package/docs/interfaces/MKAudioQualityEvent.html +225 -0
  55. package/docs/interfaces/MKAudioTrack.html +248 -0
  56. package/docs/interfaces/MKAudioTrackEvent.html +246 -0
  57. package/docs/interfaces/MKAzukiConfig.html +235 -0
  58. package/docs/interfaces/MKBitrateLimitationConfig.html +231 -0
  59. package/docs/interfaces/MKBufferConfig.html +215 -0
  60. package/docs/interfaces/MKBufferLevel.html +227 -0
  61. package/docs/interfaces/MKBufferMediaTypeConfig.html +218 -0
  62. package/docs/interfaces/MKCastAvailableEvent.html +228 -0
  63. package/docs/interfaces/MKCastConfig.html +231 -0
  64. package/docs/interfaces/MKCastStartedEvent.html +235 -0
  65. package/docs/interfaces/MKCastWaitingForDeviceEvent.html +235 -0
  66. package/docs/interfaces/MKCdnOptions.html +212 -0
  67. package/docs/interfaces/MKCueEnterEvent.html +313 -0
  68. package/docs/interfaces/MKCueExitEvent.html +313 -0
  69. package/docs/interfaces/MKCueParsedEvent.html +313 -0
  70. package/docs/interfaces/MKCueUpdateEvent.html +313 -0
  71. package/docs/interfaces/MKDownloadFinishedEvent.html +299 -0
  72. package/docs/interfaces/MKDownloadedAudioData.html +228 -0
  73. package/docs/interfaces/MKDownloadedData.html +226 -0
  74. package/docs/interfaces/MKDownloadedVideoData.html +244 -0
  75. package/docs/interfaces/MKDrmConfig.html +223 -0
  76. package/docs/interfaces/MKDrmLicense.html +210 -0
  77. package/docs/interfaces/MKDrmLicenseAddedEvent.html +227 -0
  78. package/docs/interfaces/MKDurationChangedEvent.html +235 -0
  79. package/docs/interfaces/MKError.html +229 -0
  80. package/docs/interfaces/MKErrorEvent.html +247 -0
  81. package/docs/interfaces/MKFairplayDrmConfig.html +428 -0
  82. package/docs/interfaces/MKHttpRequestOptions.html +231 -0
  83. package/docs/interfaces/MKLatencyModeChangedEvent.html +235 -0
  84. package/docs/interfaces/MKLiveConfig.html +212 -0
  85. package/docs/interfaces/MKLogConfig.html +207 -0
  86. package/docs/interfaces/MKLowLatencyConfig.html +223 -0
  87. package/docs/interfaces/MKLowLatencySyncConfig.html +223 -0
  88. package/docs/interfaces/MKMediaPlaybackQualityChangeEvent.html +238 -0
  89. package/docs/interfaces/MKMediaQualityChangeEvent.html +258 -0
  90. package/docs/interfaces/MKMediaQualityEvent.html +227 -0
  91. package/docs/interfaces/MKMediaTrack.html +223 -0
  92. package/docs/interfaces/MKMediaTrackRole.html +217 -0
  93. package/docs/interfaces/MKMetadata.html +227 -0
  94. package/docs/interfaces/MKMetadataChangedEvent.html +256 -0
  95. package/docs/interfaces/MKMetadataEvent.html +255 -0
  96. package/docs/interfaces/MKMetadataParsedEvent.html +256 -0
  97. package/docs/interfaces/MKPeriodContentInformation.html +219 -0
  98. package/docs/interfaces/MKPeriodInformation.html +211 -0
  99. package/docs/interfaces/MKPeriodSwitchObject.html +203 -0
  100. package/docs/interfaces/MKPeriodSwitchedEvent.html +235 -0
  101. package/docs/interfaces/MKPlayReadyDrmConfig.html +282 -0
  102. package/docs/interfaces/MKPlaybackConfig.html +320 -0
  103. package/docs/interfaces/MKPlaybackEvent.html +242 -0
  104. package/docs/interfaces/MKPlaybackSpeedChangedEvent.html +235 -0
  105. package/docs/interfaces/MKPlayerAPI.html +1459 -0
  106. package/docs/interfaces/MKPlayerConfig.html +304 -0
  107. package/docs/interfaces/MKPlayerEventBase.html +253 -0
  108. package/docs/interfaces/MKPlayerEventCallback.html +196 -0
  109. package/docs/interfaces/MKPlayerEventConfig.html +184 -0
  110. package/docs/interfaces/MKPlayerResizedEvent.html +235 -0
  111. package/docs/interfaces/MKProgramRestrictions.html +224 -0
  112. package/docs/interfaces/MKProgramRestrictionsEvent.html +227 -0
  113. package/docs/interfaces/MKProgramTimeChangedEvent.html +227 -0
  114. package/docs/interfaces/MKQuality.html +240 -0
  115. package/docs/interfaces/MKRegisteredSource.html +234 -0
  116. package/docs/interfaces/MKSeekEvent.html +245 -0
  117. package/docs/interfaces/MKSegmentPlaybackEvent.html +333 -0
  118. package/docs/interfaces/MKSegmentRequestFinishedEvent.html +283 -0
  119. package/docs/interfaces/MKSourceConfig.html +334 -0
  120. package/docs/interfaces/MKSourceOptions.html +365 -0
  121. package/docs/interfaces/MKSubtitleCue.html +287 -0
  122. package/docs/interfaces/MKSubtitleCuePosition.html +215 -0
  123. package/docs/interfaces/MKSubtitleEvent.html +227 -0
  124. package/docs/interfaces/MKSubtitleTrack.html +278 -0
  125. package/docs/interfaces/MKSynchronizationConfigEntry.html +211 -0
  126. package/docs/interfaces/MKTargetLatencyChangedEvent.html +235 -0
  127. package/docs/interfaces/MKTextTrack.html +258 -0
  128. package/docs/interfaces/MKThumbnail.html +263 -0
  129. package/docs/interfaces/MKThumbnailTrack.html +207 -0
  130. package/docs/interfaces/MKTimeChangedEvent.html +238 -0
  131. package/docs/interfaces/MKTimeRange.html +211 -0
  132. package/docs/interfaces/MKULLSource.html +215 -0
  133. package/docs/interfaces/MKUserInteractionEvent.html +232 -0
  134. package/docs/interfaces/MKVTTProperties.html +284 -0
  135. package/docs/interfaces/MKVTTRegionProperties.html +267 -0
  136. package/docs/interfaces/MKVideoAdaptationData.html +226 -0
  137. package/docs/interfaces/MKVideoAdaptationEvent.html +228 -0
  138. package/docs/interfaces/MKVideoDownloadQualityChangeEvent.html +255 -0
  139. package/docs/interfaces/MKVideoDownloadQualityChangedEvent.html +255 -0
  140. package/docs/interfaces/MKVideoPlaybackQualityChangedEvent.html +237 -0
  141. package/docs/interfaces/MKVideoQuality.html +268 -0
  142. package/docs/interfaces/MKVideoQualityChangedEvent.html +255 -0
  143. package/docs/interfaces/MKVideoQualityEvent.html +225 -0
  144. package/docs/interfaces/MKVideoSizeLimitationConfig.html +235 -0
  145. package/docs/interfaces/MKVideoTrack.html +240 -0
  146. package/docs/interfaces/MKViewModeChangedEvent.html +243 -0
  147. package/docs/interfaces/MKViewModeOptions.html +207 -0
  148. package/docs/interfaces/MKVolumeChangedEvent.html +245 -0
  149. package/docs/interfaces/MKWidevineModularDrmConfig.html +336 -0
  150. package/docs/modules.html +330 -0
  151. package/docs/types/MKBitrate.html +178 -0
  152. package/docs/types/MKRequestBodyParams.html +183 -0
  153. package/docs/types/MKRequestHeaders.html +183 -0
  154. package/docs/types/MKRequestQueryParams.html +183 -0
  155. package/package.json +15 -49
  156. package/samples/basic_playback.html +133 -0
  157. package/azure-pipelines.yml +0 -19
  158. package/dist/BufferLevel.d.ts +0 -4
  159. package/dist/LabelConfig.d.ts +0 -9
  160. package/dist/Logger.d.ts +0 -9
  161. package/dist/MKPlayer.d.ts +0 -31
  162. package/dist/MKPlayerConfiguration.d.ts +0 -15
  163. package/dist/MKStream.d.ts +0 -34
  164. package/dist/SubtitleTrack.d.ts +0 -4
  165. package/dist/URLHelper.d.ts +0 -5
  166. package/dist/events/MKEvent.d.ts +0 -16
  167. package/dist/events/MKPlayerEventCallback.d.ts +0 -4
  168. package/dist/events/UrlType.d.ts +0 -4
  169. package/dist/index.d.ts +0 -6
  170. package/dist/lib/BufferLevel.d.ts +0 -4
  171. package/dist/lib/BufferLevel.js +0 -3
  172. package/dist/lib/BufferLevel.js.map +0 -1
  173. package/dist/lib/LabelConfig.d.ts +0 -9
  174. package/dist/lib/LabelConfig.js +0 -3
  175. package/dist/lib/LabelConfig.js.map +0 -1
  176. package/dist/lib/Logger.d.ts +0 -9
  177. package/dist/lib/Logger.js +0 -72
  178. package/dist/lib/Logger.js.map +0 -1
  179. package/dist/lib/MKPlayer.d.ts +0 -31
  180. package/dist/lib/MKPlayer.js +0 -301
  181. package/dist/lib/MKPlayer.js.map +0 -1
  182. package/dist/lib/MKPlayerConfiguration.d.ts +0 -15
  183. package/dist/lib/MKPlayerConfiguration.js +0 -3
  184. package/dist/lib/MKPlayerConfiguration.js.map +0 -1
  185. package/dist/lib/MKStream.d.ts +0 -34
  186. package/dist/lib/MKStream.js +0 -126
  187. package/dist/lib/MKStream.js.map +0 -1
  188. package/dist/lib/SubtitleTrack.d.ts +0 -4
  189. package/dist/lib/SubtitleTrack.js +0 -3
  190. package/dist/lib/SubtitleTrack.js.map +0 -1
  191. package/dist/lib/URLHelper.d.ts +0 -5
  192. package/dist/lib/URLHelper.js +0 -63
  193. package/dist/lib/URLHelper.js.map +0 -1
  194. package/dist/lib/events/MKEvent.d.ts +0 -16
  195. package/dist/lib/events/MKEvent.js +0 -21
  196. package/dist/lib/events/MKEvent.js.map +0 -1
  197. package/dist/lib/events/MKPlayerEventCallback.d.ts +0 -4
  198. package/dist/lib/events/MKPlayerEventCallback.js +0 -3
  199. package/dist/lib/events/MKPlayerEventCallback.js.map +0 -1
  200. package/dist/lib/events/UrlType.d.ts +0 -4
  201. package/dist/lib/events/UrlType.js +0 -9
  202. package/dist/lib/events/UrlType.js.map +0 -1
  203. package/dist/lib/index.d.ts +0 -6
  204. package/dist/lib/index.js +0 -10
  205. package/dist/lib/index.js.map +0 -1
  206. package/dist/lib-esm/BufferLevel.d.ts +0 -4
  207. package/dist/lib-esm/BufferLevel.js +0 -2
  208. package/dist/lib-esm/BufferLevel.js.map +0 -1
  209. package/dist/lib-esm/LabelConfig.d.ts +0 -9
  210. package/dist/lib-esm/LabelConfig.js +0 -2
  211. package/dist/lib-esm/LabelConfig.js.map +0 -1
  212. package/dist/lib-esm/Logger.d.ts +0 -9
  213. package/dist/lib-esm/Logger.js +0 -69
  214. package/dist/lib-esm/Logger.js.map +0 -1
  215. package/dist/lib-esm/MKPlayer.d.ts +0 -31
  216. package/dist/lib-esm/MKPlayer.js +0 -298
  217. package/dist/lib-esm/MKPlayer.js.map +0 -1
  218. package/dist/lib-esm/MKPlayerConfiguration.d.ts +0 -15
  219. package/dist/lib-esm/MKPlayerConfiguration.js +0 -2
  220. package/dist/lib-esm/MKPlayerConfiguration.js.map +0 -1
  221. package/dist/lib-esm/MKStream.d.ts +0 -34
  222. package/dist/lib-esm/MKStream.js +0 -123
  223. package/dist/lib-esm/MKStream.js.map +0 -1
  224. package/dist/lib-esm/SubtitleTrack.d.ts +0 -4
  225. package/dist/lib-esm/SubtitleTrack.js +0 -2
  226. package/dist/lib-esm/SubtitleTrack.js.map +0 -1
  227. package/dist/lib-esm/URLHelper.d.ts +0 -5
  228. package/dist/lib-esm/URLHelper.js +0 -60
  229. package/dist/lib-esm/URLHelper.js.map +0 -1
  230. package/dist/lib-esm/events/MKEvent.d.ts +0 -16
  231. package/dist/lib-esm/events/MKEvent.js +0 -18
  232. package/dist/lib-esm/events/MKEvent.js.map +0 -1
  233. package/dist/lib-esm/events/MKPlayerEventCallback.d.ts +0 -4
  234. package/dist/lib-esm/events/MKPlayerEventCallback.js +0 -2
  235. package/dist/lib-esm/events/MKPlayerEventCallback.js.map +0 -1
  236. package/dist/lib-esm/events/UrlType.d.ts +0 -4
  237. package/dist/lib-esm/events/UrlType.js +0 -6
  238. package/dist/lib-esm/events/UrlType.js.map +0 -1
  239. package/dist/lib-esm/index.d.ts +0 -6
  240. package/dist/lib-esm/index.js +0 -4
  241. package/dist/lib-esm/index.js.map +0 -1
  242. package/dist/mkplayer.js +0 -1
  243. package/doc/assets/css/main.css +0 -1
  244. package/doc/assets/images/icons.png +0 -0
  245. package/doc/assets/images/icons@2x.png +0 -0
  246. package/doc/assets/images/widgets.png +0 -0
  247. package/doc/assets/images/widgets@2x.png +0 -0
  248. package/doc/assets/js/main.js +0 -51
  249. package/doc/assets/js/search.json +0 -1
  250. package/doc/classes/mkplayer.html +0 -677
  251. package/doc/enums/mkevent.html +0 -348
  252. package/doc/enums/urltype.html +0 -180
  253. package/doc/globals.html +0 -150
  254. package/doc/index.html +0 -347
  255. package/doc/interfaces/bufferlevel.html +0 -143
  256. package/doc/interfaces/labelconfig.html +0 -198
  257. package/doc/interfaces/mkplayereventcallback.html +0 -170
  258. package/doc/interfaces/subtitletrack.html +0 -198
  259. package/index.html +0 -575
  260. package/mk_logo.png +0 -0
  261. package/mkplayer-ui.min.css +0 -2
  262. package/multi-camera.html +0 -391
  263. package/src/BufferLevel.ts +0 -7
  264. package/src/LabelConfig.ts +0 -20
  265. package/src/Logger.ts +0 -51
  266. package/src/MKPlayer.ts +0 -402
  267. package/src/MKPlayerConfiguration.ts +0 -51
  268. package/src/MKStream.ts +0 -154
  269. package/src/SubtitleTrack.ts +0 -14
  270. package/src/URLHelper.ts +0 -71
  271. package/src/events/MKEvent.ts +0 -19
  272. package/src/events/MKPlayerEventCallback.ts +0 -8
  273. package/src/events/UrlType.ts +0 -7
  274. package/src/index.ts +0 -6
  275. package/tsconfig.json +0 -20
  276. package/tslint.json +0 -72
  277. package/typedoc.json +0 -11
  278. /package/{favicon.ico → samples/favicon.ico} +0 -0
package/index.html DELETED
@@ -1,575 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang='en'>
3
- <head>
4
- <title>MKPlayer 1.0.23</title>
5
- <meta charset='UTF-8'/>
6
- <meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
7
- <meta name='viewport' content='width=device-width, initial-scale=1.0'>
8
- <link rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css' integrity='sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm'
9
- crossorigin='anonymous'>
10
- <script
11
- src='https://code.jquery.com/jquery-3.4.1.min.js'
12
- integrity='sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo='
13
- crossorigin='anonymous'></script>
14
- <script src='https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js'></script>
15
- <script src='https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js' integrity='sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl'
16
- crossorigin='anonymous'></script>
17
- <script type='text/javascript' src='./dist/mkplayer.js'></script>
18
- <link rel='stylesheet' href='mkplayer-ui.min.css'>
19
- <style>
20
- .player-wrapper {
21
- margin: 20px auto;
22
- box-shadow: 0 0 30px rgba(0, 0, 0, 0.7);
23
- }
24
-
25
- .meta-info {
26
- text-align: center;
27
- }
28
-
29
- .row {
30
- margin: 20px 0;
31
- }
32
-
33
- .content-selection {
34
- display: flex;
35
- flex-wrap: wrap;
36
- flex-direction: row;
37
- justify-content: center;
38
- align-items: center;
39
- }
40
-
41
- .content-selection > label {
42
- margin: 5px;
43
- }
44
- </style>
45
- </head>
46
- <body>
47
- <div class='container'>
48
- <div class='meta-info'>
49
- <div class='row'>
50
- <div class="col-10">
51
- <div class="float-left">
52
- <a href="doc/index.html">Check out our docs!</a>
53
- </div>
54
- </div>
55
- <div class="col-2">
56
- <div class="float-right"><a href="https://www.w3schools.com"><img src="mk_logo.png" alt="Girl in a jacket" width="50" height="30" href="www.mediakind.com"></a>
57
- </div>
58
- </div>
59
- </div>
60
- <div class='row'>
61
- <div class='col'>
62
- <div class='input-group mb-3'>
63
- <input id='steam-stream-url' type='text' class='form-control' placeholder='Custom primaryUrl' aria-label='Custom primaryUrl' value="">
64
- <input id='steam-stream-secondary-url' type='text' class='form-control' placeholder='Custom secondaryUrl' aria-label='Custom secondaryUrl' value="">
65
- <input id='subtitle-url' type='text' class='form-control' placeholder='SubtitleTrack url' aria-label='SubtitleTrack url' value="">
66
- <input id='subtitle-language' type='text' class='form-control' placeholder='SubtitleTrack language' aria-label='SubtitleTrack language' value="">
67
- <div class='input-group-append'>
68
- <button id='load-custom-steam' class='btn btn-outline-secondary' type='button'>Load</button>
69
- <button id='unload-stream' class='btn btn-outline-secondary' type='button'>Unload</button>
70
- </div>
71
- <br/>
72
- </div>
73
- </div>
74
- </div>
75
-
76
- </div>
77
- <div class='content'>
78
- <div class='player-wrapper'>
79
- <div id='testPlayer'></div>
80
- </div>
81
- </div>
82
- <div class='row'>
83
- <div class='col-12'>
84
- <div class='content-selection btn-group btn-group-toggle' data-toggle='buttons'>
85
- <label class='btn btn-outline-secondary'>
86
- <input type='radio' name='options' id='option-vod' autocomplete='off'>HLS VOD
87
- </label>
88
- <label class='btn btn-outline-secondary active'>
89
- <input type='radio' name='options' id='option-live' autocomplete='off' checked>Live
90
- </label>
91
- <label class='btn btn-outline-secondary'>
92
- <input type='radio' name='options' id='option-live-subtitle' autocomplete='off' checked>Live Subs
93
- </label>
94
- <label class='btn btn-outline-secondary'>
95
- <input type='radio' name='options' id='option-dash-vod' autocomplete='off'>DASH VOD
96
- </label>
97
- <label class='btn btn-outline-secondary'>
98
- <input type='radio' name='options' id='option-dash-subtitle' autocomplete='off'>DASH Subtitle
99
- </label>
100
- <label class='btn btn-outline-secondary'>
101
- <input type='radio' name='options' id='option-hls-subtitle' autocomplete='off'>HLS Subtitle
102
- </label>
103
- <label class='btn btn-outline-secondary'>
104
- <input type='radio' name='options' id='option-emsg-1' autocomplete='off'>EMSG Live
105
- </label>
106
- <label class='btn btn-outline-secondary'>
107
- <input type='radio' name='options' id='option-mp4-2' autocomplete='off'>MP4 Source 2
108
- </label>
109
- <label class='btn btn-outline-secondary'>
110
- <input type='radio' name='options' id='option-mp4-3' autocomplete='off'>MP4 Source 3
111
- </label>
112
- <label class='btn btn-outline-secondary'>
113
- <input type='radio' name='options' id='option-error' autocomplete='off'>Error Source
114
- </label>
115
- </div>
116
- </div>
117
- </div>
118
- <div class='row'>
119
- <div class='col-12'>
120
- <div class='content-selection btn-group btn-group-toggle' data-toggle='buttons'>
121
- <label class='btn btn-outline-secondary'>
122
- <input type='radio' name='options' id='option-destroy' autocomplete='off'>destroy()
123
- </label>
124
- </div>
125
- </div>
126
- </div>
127
-
128
- <div class='row'>
129
- <div class='col-12'>
130
- <p>Video Buffer </p>
131
- <div class='progress'>
132
- <div class='progress-bar progress-bar-striped progress-bar-animated' role='progressbar' aria-valuenow='0' aria-valuemin='0' aria-valuemax='100' style='width: 0'
133
- id='videoBuffer'></div>
134
- </div>
135
- </div>
136
- </div>
137
- <div class='row'>
138
- <div class='col-12'>
139
- <p>Audio Buffer</p>
140
- <div class='progress'>
141
- <div class='progress-bar progress-bar-striped progress-bar-animated' role='progressbar' aria-valuenow='0' aria-valuemin='0' aria-valuemax='100' style='width: 0'
142
- id='audioBuffer'></div>
143
- </div>
144
- </div>
145
- </div>
146
-
147
- <div class='row'>
148
- <div class='col-12'>
149
- <p id='startupTime'>Video Startup Time: unknown</p>
150
- </div>
151
- </div>
152
- <div class='row'>
153
- <div class='col-12'>
154
- <p id='playbackBitrate'>Video Playback Bitrate: unknown</p>
155
- </div>
156
- </div>
157
- <div class='row'>
158
- <div class='col-12'>
159
- <p id='wallClockTime'>Wall Clock Time: unknown</p>
160
- </div>
161
- </div>
162
- <div class='row'>
163
- <div class='col-12'>
164
- <p id='segmentTime'>Segment Time: unknown</p>
165
- </div>
166
- </div>
167
- <div class='row'>
168
- <div class='col-12'>
169
- <p id='segmentPlaybackLabel'>Segment: unknown</p>
170
- </div>
171
- </div>
172
- <div class='row'>
173
- <div class='col-12'>
174
- <p id='metadataLabel'>Metadata: unknown</p>
175
- </div>
176
- </div>
177
- </div>
178
- <script type='text/javascript'>
179
- let vodButton = $('#option-vod').parent();
180
- let dashVodButton = $('#option-dash-vod').parent();
181
- let dashSubtitleButton = $('#option-dash-subtitle').parent();
182
- let hlsSubtitleButton = $('#option-hls-subtitle').parent();
183
- let emsgButton = $('#option-emsg-1').parent();
184
- let mp4Button2 = $('#option-mp4-2').parent();
185
- let mp4Button3 = $('#option-mp4-3').parent();
186
- let liveButton = $('#option-live').parent();
187
- let liveSubtitleButton = $('#option-live-subtitle').parent();
188
- let errorButton = $('#option-error').parent();
189
- let destroyButton = $('#option-destroy').parent();
190
- let customStreamButton = $('#load-custom-steam');
191
- let unloadStream = $('#unload-stream');
192
- let loadTime;
193
- let startupTimeCalculated = false;
194
-
195
- function deselectCustomLoadButton() {
196
- $(customStreamButton).removeClass('active');
197
- }
198
-
199
- function load(source) {
200
- loadTime = Date.now();
201
- startupTimeCalculated = false;
202
- mkPlayer.load(source).then(function() {
203
- console.log('MKPlayer Example Page Loaded Source Successfully');
204
- }, function(reason) {
205
- console.error('MKPlayer Example Page - Error loading MKPlayer Source');
206
- console.error(reason);
207
- });
208
- }
209
-
210
- function formatTimestamp(timestamp) {
211
- var date = new Date(timestamp * 1000);
212
- var hours = date.getHours();
213
- var minutes = "0" + date.getMinutes();
214
- var seconds = "0" + date.getSeconds();
215
- var millis = "0" + date.getMilliseconds();
216
-
217
- var formattedTime = date.toDateString() + ' ' + hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2) + ':' + millis.substr(-3);
218
-
219
- return formattedTime;
220
-
221
- }
222
-
223
- vodButton.on('click', function() {
224
- vodButton.button('toggle');
225
- deselectCustomLoadButton();
226
- load(vodSource);
227
- });
228
-
229
- destroyButton.on('click', function() {
230
- mkPlayer.unload();
231
- mkPlayer.destroy();
232
- });
233
-
234
- dashVodButton.on('click', function() {
235
- dashVodButton.button('toggle');
236
- deselectCustomLoadButton();
237
- load(dashVodSource);
238
- });
239
-
240
- hlsSubtitleButton.on('click', function() {
241
- hlsSubtitleButton.button('toggle');
242
- deselectCustomLoadButton();
243
- load(hlsSubtitleSource);
244
- });
245
-
246
- dashSubtitleButton.on('click', function() {
247
- dashSubtitleButton.button('toggle');
248
- deselectCustomLoadButton();
249
- load(dashSubtitleSource);
250
- });
251
-
252
- errorButton.on('click', function() {
253
- errorButton.button('toggle');
254
- deselectCustomLoadButton();
255
- load(errorSource);
256
- });
257
-
258
- emsgButton.on('click', function() {
259
- emsgButton.button('toggle');
260
- deselectCustomLoadButton();
261
- load(emsgSource);
262
- });
263
-
264
- mp4Button2.on('click', function() {
265
- mp4Button2.button('toggle');
266
- deselectCustomLoadButton();
267
- load(mp4Source2);
268
- });
269
-
270
- mp4Button3.on('click', function() {
271
- mp4Button3.button('toggle');
272
- deselectCustomLoadButton();
273
- load(mp4Source3);
274
- });
275
-
276
- liveButton.on('click', function() {
277
- liveButton.button('toggle');
278
- deselectCustomLoadButton();
279
-
280
- mkPlayer.unload();
281
- load(liveId3Source);
282
- });
283
-
284
- liveSubtitleButton.on('click', function() {
285
- liveSubtitleButton.button('toggle');
286
- deselectCustomLoadButton();
287
-
288
- mkPlayer.unload();
289
- load(liveSubtitle);
290
- });
291
-
292
- customStreamButton.on('click', function() {
293
- // remove active button of group
294
- $($('.btn-group-toggle .active')[0]).removeClass('active');
295
- let customSource = {
296
- primaryUrl: $('#steam-stream-url').val(),
297
- secondaryUrl: $('#steam-stream-secondary-url').val(),
298
- cdnFailoverPercent: 10,
299
- assetIdentifier: 'Custom Source',
300
- };
301
-
302
- if ($('#subtitle-url').val() && $('#subtitle-language').val()) {
303
- customSource.subtitleTracks = [{
304
- url: $('#subtitle-url').val(),
305
- language: $('#subtitle-language').val(),
306
- }]
307
- }
308
-
309
- mkPlayer.unload();
310
- load(customSource);
311
- });
312
-
313
- unloadStream.on('click', function() {
314
- $($('.btn-group-toggle .active')[0]).removeClass('active');
315
-
316
- // remove active button of group
317
- mkPlayer.unload();
318
- });
319
-
320
- let liveSource = {
321
- // primaryUrl: "https://ceslive-mediakind.akamaized.net/cmaftkn/CES-Hero/index.m3u8",
322
- // secondaryUrl:"https://ceslive-mediakind.akamaized.net/cmaftkn/CES-Hero/index.m3u8",
323
- primaryUrl: 'https://dtcvod.mediakindengage.com/ctatkn/hls/CES_MEDIA17/index.m3u8',
324
- secondaryUrl: 'https://dtcvod.mediakindengage.com/ctatkn/hls/CES_MEDIA17/index.m3u8',
325
- cdnFailoverPercent: 1,
326
- subtitleTracks: [],
327
- assetIdentifier: 'HLS Live',
328
- labelConfig: {
329
- audio: [
330
- {'en': 'English', 'mis': 'Audio Descriptions'}
331
- ],
332
- captions: [
333
- {id: 'application/mp4-2', language: 'en', name: 'English'},
334
- {id: 'application/mp4-3', language: 'zh', name: 'Chinese Simplified'},
335
- {id: 'application/mp4-4', language: 'cs', name: 'CS'},
336
- {id: 'application/mp4-5', language: 'ar', name: 'AR'},
337
- {id: 'application/mp4-6', language: 'ko', name: 'Korean'},
338
- {id: 'application/mp4-7', language: 'sv', name: 'SV'},
339
- {id: 'application/mp4-8', language: 'ja', name: 'Japanese'},
340
- {id: 'application/mp4-9', language: 'tr', name: 'Turkish'},
341
- {id: 'application/mp4-10', language: 'de', name: 'German'},
342
- {id: 'application/mp4-11', language: 'ru', name: 'Russian'},
343
- {id: 'application/mp4-12', language: 'zh', name: 'Chinese Traditional'},
344
- {id: 'application/mp4-13', language: 'es', name: 'Spanish'},
345
- {id: 'application/mp4-14', language: 'pt', name: 'Portugese'},
346
- {id: 'application/mp4-15', language: 'fr', name: 'French'},
347
- {id: 'application/mp4-16', language: 'it', name: 'Italian'},
348
- {id: 'application/mp4-17', language: 'pl', name: 'PL'},
349
- {id: 'application/mp4-18', language: 'nl', name: 'Dutch'},
350
- ]
351
- }
352
- };
353
-
354
- let liveSubtitle = {
355
- primaryUrl: "https://cdn-0573.aas.mediakind.com/cmaftkn/CES-Hero/index.m3u8",
356
- cdnFailoverPercent: 10,
357
- assetIdentifier: 'DASH Live',
358
- subtitleTracks: [
359
- {
360
- url: "https://cesstatic.blob.core.windows.net/hls/Test1/master_captionENG.m3u8",
361
- language: 'ENG',
362
- },
363
- {
364
- url: "https://cesstatic.blob.core.windows.net/hls/Test1/master_captionGER.m3u8",
365
- language: 'GER',
366
- },
367
- {
368
- url: "https://cesstatic.blob.core.windows.net/hls/Test1/master_captionTA.m3u8",
369
- language: 'TA',
370
- },
371
- ],
372
- labelConfig: {
373
- audio: {'en': 'English', 'mis': 'Audio Descriptions'},
374
- captions: [
375
- {id: 'application/mp4-2', language: 'ENG', name: 'English'},
376
- {id: 'application/mp4-3', language: 'zh', name: 'Chinese Simplified'},
377
- {id: 'application/mp4-4', language: 'cs', name: 'CS'},
378
- {id: 'application/mp4-5', language: 'ar', name: 'AR'},
379
- {id: 'application/mp4-6', language: 'ko', name: 'Korean'},
380
- {id: 'application/mp4-7', language: 'sv', name: 'SV'},
381
- {id: 'application/mp4-8', language: 'ja', name: 'Japanese'},
382
- {id: 'application/mp4-9', language: 'TA', name: 'Turkish'},
383
- {id: 'application/mp4-10', language: 'GER', name: 'German'},
384
- {id: 'application/mp4-11', language: 'ru', name: 'Russian'},
385
- {id: 'application/mp4-12', language: 'zh', name: 'Chinese Traditional'},
386
- ]
387
- }
388
- };
389
-
390
- let liveId3Source = {
391
- primaryUrl: "http://52.232.209.101/hls-ts/MKChannelOne/index.m3u8",
392
- cdnFailoverPercent: 10,
393
- assetIdentifier: 'ID3 Live',
394
- };
395
-
396
- let emsgSource = {
397
- primaryUrl: "https://livesim.dashif.org/livesim/scte35_2/testpic_2s/Manifest.mpd",
398
- cdnFailoverPercent: 0,
399
- assetIdentifier: 'EMSG Live',
400
- };
401
-
402
- let dashSubtitleSource = {
403
- primaryUrl: "https://bitmovin-a.akamaihd.net/content/sintel/sintel.mpd",
404
- subtitleTracks: [{
405
- url: 'https://bitdash-a.akamaihd.net/content/sintel/subtitles/subtitles_en.vtt',
406
- language: 'aa',
407
- }],
408
- assetIdentifier: 'DASH Subtitle',
409
- poster: 'https://bitmovin-a.akamaihd.net/content/sintel/poster.png',
410
- userId: 'badge1',
411
- };
412
-
413
- let dashVodSource = {
414
- primaryUrl: "https://mk-orionsedge.azureedge.net/d2ct1/dash/tenant1_ASMIK_ASMI0000000000000920/manifest.mpd",
415
- cdnFailoverPercent: 0,
416
- assetIdentifier: 'DASH VOD',
417
- subtitleTracks: [{
418
- url: 'https://bitdash-a.akamaihd.net/content/sintel/subtitles/subtitles_en.vtt',
419
- language: 'ms',
420
- }],
421
- userId: 'badge2',
422
- customData1: 'customData1',
423
- customData2: 'customData2',
424
- customData3: 'customData3',
425
- customData4: 'customData4',
426
- customData5: 'customData5',
427
- }
428
-
429
- let hlsSubtitleSource = {
430
- primaryUrl: 'https://mk-orionsedge.azureedge.net/test/hls/tos/index.m3u8',
431
- cdnFailoverPercent: 0,
432
- assetIdentifier: 'HLS Subtitle',
433
- userId: 'badge3',
434
- }
435
-
436
- var vodSource = {
437
- primaryUrl: "https://mk-orionsedge.azureedge.net/d2ct1/hls/tenant1_ASMIK_ASMI0000000000000920/index.m3u8",
438
- assetIdentifier: 'HLS Vod',
439
- cdnFailoverPercent: 10,
440
- subtitleTracks: [{
441
- url: 'https://bitdash-a.akamaihd.net/content/sintel/subtitles/subtitles_en.vtt',
442
- language: 'ms',
443
- }],
444
- };
445
-
446
- var mp4Source = {
447
- primaryUrl: "https://mkplayer.z13.web.core.windows.net/vectors/product.mp4",
448
- assetIdentifier: 'MP4 Source 1',
449
- }
450
-
451
- var mp4Source2 = {
452
- primaryUrl: "https://mkplayer.z13.web.core.windows.net/vectors/mys_video.mp4",
453
- assetIdentifier: 'MP4 Source 2',
454
- }
455
-
456
- var mp4Source3 = {
457
- primaryUrl: "https://mediusproduction.blob.core.windows.net/video-28731/Build2020Satya.mp4?sv=2018-03-28&sr=c&sig=KyUgEjjChf7RD5SzHisGTn3%2BXkof%2FHYSBMWSaj7EHCs%3D&se=2025-05-19T17%3A16%3A57Z&sp=r",
458
- assetIdentifier: 'MP4 Source 3',
459
- subtitleTracks: [
460
- {
461
- url: 'https://mediusproduction.blob.core.windows.net/video-28731/Caption_fi-FI.vtt?sv=2018-03-28&amp;sr=c&amp;sig=jsW7SssIhDY9ESoLoDjYgjmCSX1LyRVcM2AVa%2FPIZN8%3D&se=2025-05-22T14%3A22%3A12Z&sp=r',
462
- language: 'fi',
463
- },
464
- {
465
- url: 'https://mediusprodstatic.studios.ms/video-28731/Caption_ar-EG.vtt?sv=2018-03-28&sr=c&sig=qFHd87nMFTZWXNkDIEcq4656fFH6Zb%2Fd40q4zaVSOJA%3D&se=2025-05-26T15%3A52%3A20Z&sp=r',
466
- language: 'ms',
467
- },
468
- ],
469
- }
470
-
471
- let errorSource = {
472
- primaryUrl: "https://bitdash-a.akamaihd.net/content/sintel/hls/plaasdfasdfadfylist.m3u8",
473
- assetIdentifier: 'Error Asset',
474
- cdnFailoverPercent: 10,
475
- };
476
-
477
- let mkPlayerConfiguration = {
478
- debug: true,
479
- autoplay: true,
480
- muted: true,
481
- smallScreen: false,
482
- key: '84dc4716-55f9-43fa-ae8e-6fa334c5189b',
483
-
484
- // refreshToken: (type) => {
485
- // // if (type === 'primary') {
486
- // // return {name: 'hdnts', value: 'exp=1610140360~acl=*~hmac=3662c21bdc6cfa7f2d0a0462c23a71982bfa0c176c7e164b0630195ee4003104'}
487
- // // }else if (type === 'secondary') {
488
- // // return {name: 'hdnts', value: 'exp=1610140360~acl=*~hmac=3662c21bdc6cfa7f2d0a0462c23a71982bfa0c176c7e164b0630195ee4003104'}
489
- // // }
490
- //
491
- // return {name: 'hdnts', value: '5pIs6i6k5KbY0n5ezMaN-GGDUvq4zYUXMFUJzlHs-j_BuZKkd5zzbFCfudf52qL2'}
492
- // },
493
- };
494
-
495
- let playerContainer = document.getElementById('testPlayer');
496
- let mkPlayer = new mkplayer.MKPlayer(playerContainer, mkPlayerConfiguration);
497
-
498
- mkPlayer.on('error', function(event) {
499
- console.error('[MKPlayer] error: %d - %s', event.code, event.name);
500
- })
501
-
502
- mkPlayer.on('warning', function(event) {
503
- console.error('[MKPlayer] warning: %d - %s', event.code, event.name);
504
- })
505
-
506
- mkPlayer.on('ready', function(event) {
507
- console.info('[MKPlayer] ready ' + event.timestamp);
508
- })
509
-
510
- const getAudioBufferLevel = function() {
511
- return mkPlayer.getBufferLevels().audio
512
- };
513
- const getVideoBufferLevel = function() {
514
- return mkPlayer.getBufferLevels().video
515
- };
516
- mkPlayer.on('timechanged', function(event) {
517
- let videoBufferLevel = Math.round(getVideoBufferLevel() * 100) / 100;
518
- $('#videoBuffer').css('width', videoBufferLevel + '%').attr('aria-valuenow', videoBufferLevel);
519
- $('#videoBuffer').text(videoBufferLevel)
520
-
521
- let audioBufferLevel = Math.round(getAudioBufferLevel() * 100) / 100;
522
- $('#audioBuffer').css('width', audioBufferLevel + '%').attr('aria-valuenow', audioBufferLevel);
523
- $('#audioBuffer').text(audioBufferLevel)
524
-
525
- $('#segmentTime').text('Segment Time: ' + formatTimestamp(event.time))
526
-
527
- $('#wallClockTime').text('Wall Clock Time: ' + formatTimestamp(Date.now() / 1000))
528
-
529
- })
530
-
531
- mkPlayer.on('playing', function(event) {
532
- if (!startupTimeCalculated) {
533
- const startupTime = new Date(Date.now() - loadTime);
534
- $('#startupTime').text('Video Startup Time: ' + startupTime.getSeconds() + "." + startupTime.getMilliseconds());
535
- startupTimeCalculated = true
536
- }
537
- console.info('[MKPlayer] playing: ' + JSON.stringify(event));
538
- })
539
-
540
- mkPlayer.on('paused', function(event) {
541
- console.info('[MKPlayer] paused: ' + JSON.stringify(event));
542
- })
543
-
544
- mkPlayer.on('playbackfinished', (event) => {
545
- console.info('[MKPlayer] playbackfinished' + JSON.stringify(event));
546
- })
547
-
548
- mkPlayer.on('segmentplayback', function(event) {
549
- if (event.mimeType === 'video/mp4') {
550
- let segmentUrl = event.url
551
- let fileNameIndex = segmentUrl.lastIndexOf("/") + 1;
552
- const filename = segmentUrl.substr(fileNameIndex);
553
- $('#segmentPlaybackLabel').text('[MKPlayer] Segment: url=' + filename + ' time=' + event.playbackTime)
554
- previousSegmentPlaybackTime = event.playbackTime;
555
- }
556
- })
557
-
558
- mkPlayer.on('qualitychanged', function(event) {
559
- currentPlayingBitrate = event.targetQuality.bitrate
560
- $('#playbackBitrate').text('Video Playback Quality: ' + currentPlayingBitrate)
561
- });
562
-
563
- mkPlayer.on('metadata', function(event) {
564
- $('#metadataLabel').text('Metadata: ' + JSON.stringify(event));
565
- });
566
-
567
- mkPlayer.on('metadataparsed', function(event) {
568
- console.info('[MKPlayer] metadata parsed' + JSON.stringify(event));
569
- });
570
-
571
- load(liveSource)
572
-
573
- </script>
574
- </body>
575
- </html>
package/mk_logo.png DELETED
Binary file