capacitor-plugin-playlist 0.1.27 → 0.1.31

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.
package/README.md CHANGED
@@ -105,20 +105,32 @@ Be sure to check out the examples folder, where you can find an Angular10/Ionic5
105
105
  Just drop into your project and go.
106
106
  Should be quite obvious howto adapt this for other frameworks, or just vanillaJS
107
107
 
108
+ ### API
109
+ Example:
110
+ @see definition.ts
111
+ ```
112
+ import {Playlist, AudioTrack} from 'capacitor-plugin-playlist'
113
+
114
+ const item: AudioTrack = {
115
+ trackId: 1,
116
+ assetUrl: 'http://your_audio',
117
+ albumArt: 'http://some_image'
118
+ }
119
+ await Playlist.addItem({item})
120
+ ```
121
+
122
+ - TODO!
123
+
108
124
  ### Migrating from cordova-plugin-playlist
109
125
 
110
- See the Example RmxAudioPlayer.ts
126
+ See the use the shipped RmxAudioPlayer.ts
111
127
 
112
128
  Its a meant as a drop in replacement
113
129
 
114
130
  in the best case you only change your import. :D
115
131
 
116
- ### API
117
132
 
118
- - TODO!
119
133
  ## 5. Todo
120
- * [iOS] Write this plugin in Swift instead of Objective-C. I didn't have time to learn Swift when I needed this.
121
- * [iOS] Safely implement cover art for cover images displayed on the command/lock screen controls
122
134
  * [iOS] Utilize [AudioPlayer](https://github.com/delannoyk/AudioPlayer) instead of directly implementing AVQueuePlayer. `AudioPlayer` includes some smart network recovery features
123
135
  * [iOS, Android] Add a full example
124
136
 
@@ -0,0 +1 @@
1
+ /build
@@ -0,0 +1 @@
1
+ /build
@@ -192,10 +192,10 @@ class PlaylistPlugin : Plugin(), OnStatusReportListener {
192
192
 
193
193
  @PluginMethod
194
194
  fun playTrackById(call: PluginCall) {
195
- val trackId: String = call.getString("id")!!
196
- if ("" != trackId) {
195
+ val id: String = call.getString("id")!!
196
+ if ("" != id) {
197
197
  // alternatively we could search for the item and set the current index to that item.
198
- val code = trackId.hashCode()
198
+ val code = id.hashCode()
199
199
  val seekPosition = (call.getInt("position", 0)!! * 1000.0).toLong()
200
200
  audioPlayerImpl!!.playlistManager.setCurrentItem(code.toLong())
201
201
  audioPlayerImpl!!.playlistManager.beginPlayback(seekPosition, false)
@@ -224,10 +224,10 @@ class PlaylistPlugin : Plugin(), OnStatusReportListener {
224
224
 
225
225
  @PluginMethod
226
226
  fun selectTrackById(call: PluginCall) {
227
- val trackId: String = call.getString("id")!!
228
- if ("" != trackId) {
227
+ val id: String = call.getString("id")!!
228
+ if ("" != id) {
229
229
  // alternatively we could search for the item and set the current index to that item.
230
- val code = trackId.hashCode()
230
+ val code = id.hashCode()
231
231
  audioPlayerImpl!!.playlistManager.setCurrentItem(code.toLong())
232
232
 
233
233
  val seekPosition = (call.getInt("position", 0)!! * 1000.0).toLong()
@@ -280,4 +280,4 @@ class PlaylistManager(application: Application) :
280
280
  setParameters(audioTracks, -1)
281
281
  options = Options(application.baseContext)
282
282
  }
283
- }
283
+ }
package/dist/esm/web.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { WebPlugin } from '@capacitor/core';
2
+ import { RmxAudioStatusMessage } from './Constants';
2
3
  import { AddAllItemOptions, AddItemOptions, PlayByIdOptions, PlayByIndexOptions, PlaylistOptions, PlaylistPlugin, RemoveItemOptions, RemoveItemsOptions, SeekToOptions, SelectByIdOptions, SelectByIndexOptions, SetLoopOptions, SetPlaybackRateOptions, SetPlaybackVolumeOptions } from './definitions';
3
4
  import { AudioPlayerOptions, AudioTrack } from './interfaces';
4
5
  export declare class PlaylistWeb extends WebPlugin implements PlaylistPlugin {
@@ -40,7 +41,7 @@ export declare class PlaylistWeb extends WebPlugin implements PlaylistPlugin {
40
41
  currentPosition: number;
41
42
  };
42
43
  protected setCurrent(item: AudioTrack, position?: number): Promise<void>;
43
- protected log(message?: any, ...optionalParams: any[]): void;
44
+ protected updateStatus(msgType: RmxAudioStatusMessage, value: any, trackId?: string): void;
44
45
  private hlsLoaded;
45
46
  protected loadHlsJs(): Promise<unknown>;
46
47
  }
package/dist/esm/web.js CHANGED
@@ -19,15 +19,18 @@ export class PlaylistWeb extends WebPlugin {
19
19
  const track = validateTrack(options.item);
20
20
  if (track) {
21
21
  this.playlistItems.push(track);
22
+ this.updateStatus(RmxAudioStatusMessage.RMXSTATUS_ITEM_ADDED, track, track.trackId);
22
23
  }
23
24
  return Promise.resolve();
24
25
  }
25
26
  async clearAllItems() {
26
27
  await this.release();
27
28
  this.playlistItems = [];
29
+ this.updateStatus(RmxAudioStatusMessage.RMXSTATUS_PLAYLIST_CLEARED, null, "INVALID");
28
30
  return Promise.resolve();
29
31
  }
30
32
  async initialize() {
33
+ this.updateStatus(RmxAudioStatusMessage.RMXSTATUS_INIT, null, "INVALID");
31
34
  return Promise.resolve();
32
35
  }
33
36
  async pause() {
@@ -62,23 +65,26 @@ export class PlaylistWeb extends WebPlugin {
62
65
  }
63
66
  async release() {
64
67
  await this.pause();
68
+ this.audio.src = "";
65
69
  this.audio = undefined;
66
70
  return Promise.resolve();
67
71
  }
68
72
  removeItem(options) {
69
73
  this.playlistItems.forEach((item, index) => {
70
74
  if (options.index && options.index === index) {
71
- this.playlistItems.splice(index, 1);
75
+ const removedTrack = this.playlistItems.splice(index, 1);
76
+ this.updateStatus(RmxAudioStatusMessage.RMXSTATUS_ITEM_REMOVED, removedTrack[0], removedTrack[0].trackId);
72
77
  }
73
78
  else if (options.id && options.id === item.trackId) {
74
- this.playlistItems.splice(index, 1);
79
+ const removedTrack = this.playlistItems.splice(index, 1);
80
+ this.updateStatus(RmxAudioStatusMessage.RMXSTATUS_ITEM_REMOVED, removedTrack[0], removedTrack[0].trackId);
75
81
  }
76
82
  });
77
83
  return Promise.resolve();
78
84
  }
79
85
  removeItems(options) {
80
- options.items.forEach((item) => {
81
- this.removeItem(item);
86
+ options.items.forEach(async (item) => {
87
+ await this.removeItem(item);
82
88
  });
83
89
  return Promise.resolve();
84
90
  }
@@ -123,14 +129,18 @@ export class PlaylistWeb extends WebPlugin {
123
129
  return Promise.reject();
124
130
  }
125
131
  setPlaylistItems(options) {
126
- var _a;
132
+ var _a, _b;
127
133
  this.playlistItems = options.items;
128
134
  if (this.playlistItems.length > 0) {
129
- return this.setCurrent(this.playlistItems[0], ((_a = options.options) === null || _a === void 0 ? void 0 : _a.playFromPosition) || 0);
135
+ let currentItem = this.playlistItems.filter(i => { var _a; return i.trackId === ((_a = options.options) === null || _a === void 0 ? void 0 : _a.playFromId); })[0];
136
+ if (!currentItem) {
137
+ currentItem = this.playlistItems[0];
138
+ }
139
+ return this.setCurrent(currentItem, ((_a = options.options) === null || _a === void 0 ? void 0 : _a.retainPosition) ? (_b = options.options) === null || _b === void 0 ? void 0 : _b.playFromPosition : 0);
130
140
  }
131
141
  return Promise.resolve();
132
142
  }
133
- skipForward() {
143
+ async skipForward() {
134
144
  let found = null;
135
145
  this.playlistItems.forEach((item, index) => {
136
146
  if (!found && this.getCurrentTrackId() === item.trackId) {
@@ -141,11 +151,15 @@ export class PlaylistWeb extends WebPlugin {
141
151
  found = -1;
142
152
  }
143
153
  if (found !== null) {
154
+ this.updateStatus(RmxAudioStatusMessage.RMX_STATUS_SKIP_BACK, {
155
+ currentIndex: found + 1,
156
+ currentItem: this.playlistItems[found + 1]
157
+ }, this.playlistItems[found + 1].trackId);
144
158
  return this.setCurrent(this.playlistItems[found + 1]);
145
159
  }
146
160
  return Promise.reject();
147
161
  }
148
- skipBack() {
162
+ async skipBack() {
149
163
  let found = null;
150
164
  this.playlistItems.forEach((item, index) => {
151
165
  if (!found && this.getCurrentTrackId() === item.trackId) {
@@ -156,8 +170,11 @@ export class PlaylistWeb extends WebPlugin {
156
170
  found = this.playlistItems.length - 1;
157
171
  }
158
172
  if (found !== null) {
159
- this.setCurrent(this.playlistItems[found - 1]);
160
- return Promise.resolve();
173
+ this.updateStatus(RmxAudioStatusMessage.RMX_STATUS_SKIP_BACK, {
174
+ currentIndex: found - 1,
175
+ currentItem: this.playlistItems[found - 1]
176
+ }, this.playlistItems[found - 1].trackId);
177
+ return this.setCurrent(this.playlistItems[found - 1]);
161
178
  }
162
179
  return Promise.reject();
163
180
  }
@@ -188,14 +205,7 @@ export class PlaylistWeb extends WebPlugin {
188
205
  registerHtmlListeners(position) {
189
206
  const canPlayListener = async () => {
190
207
  var _a;
191
- this.notifyListeners('status', {
192
- action: 'status',
193
- status: {
194
- msgType: RmxAudioStatusMessage.RMXSTATUS_CANPLAY,
195
- trackId: this.getCurrentTrackId(),
196
- value: this.getCurrentTrackStatus('paused'),
197
- }
198
- });
208
+ this.updateStatus(RmxAudioStatusMessage.RMXSTATUS_CANPLAY, this.getCurrentTrackStatus('paused'));
199
209
  if (position) {
200
210
  await this.seekTo({ position });
201
211
  }
@@ -204,57 +214,22 @@ export class PlaylistWeb extends WebPlugin {
204
214
  if (this.audio) {
205
215
  this.audio.addEventListener('canplay', canPlayListener);
206
216
  this.audio.addEventListener('playing', () => {
207
- this.notifyListeners('status', {
208
- action: 'status',
209
- status: {
210
- msgType: RmxAudioStatusMessage.RMXSTATUS_PLAYING,
211
- trackId: this.getCurrentTrackId(),
212
- value: this.getCurrentTrackStatus('playing'),
213
- }
214
- });
217
+ this.updateStatus(RmxAudioStatusMessage.RMXSTATUS_PLAYING, this.getCurrentTrackStatus('playing'));
215
218
  });
216
219
  this.audio.addEventListener('pause', () => {
217
- this.notifyListeners('status', {
218
- action: 'status',
219
- status: {
220
- msgType: RmxAudioStatusMessage.RMXSTATUS_PAUSE,
221
- trackId: this.getCurrentTrackId(),
222
- value: this.getCurrentTrackStatus('paused'),
223
- }
224
- });
220
+ this.updateStatus(RmxAudioStatusMessage.RMXSTATUS_PAUSE, this.getCurrentTrackStatus('paused'));
225
221
  });
226
222
  this.audio.addEventListener('error', () => {
227
- this.notifyListeners('status', {
228
- action: 'status',
229
- status: {
230
- msgType: RmxAudioStatusMessage.RMXSTATUS_ERROR,
231
- trackId: this.getCurrentTrackId(),
232
- value: this.getCurrentTrackStatus('error'),
233
- }
234
- });
223
+ this.updateStatus(RmxAudioStatusMessage.RMXSTATUS_ERROR, this.getCurrentTrackStatus('error'));
235
224
  });
236
225
  this.audio.addEventListener('ended', () => {
237
- this.notifyListeners('status', {
238
- action: 'status',
239
- status: {
240
- msgType: RmxAudioStatusMessage.RMXSTATUS_STOPPED,
241
- trackId: this.getCurrentTrackId(),
242
- value: this.getCurrentTrackStatus('stopped'),
243
- }
244
- });
226
+ this.updateStatus(RmxAudioStatusMessage.RMXSTATUS_STOPPED, this.getCurrentTrackStatus('stopped'));
245
227
  });
246
228
  let lastTrackId, lastPosition;
247
229
  this.audio.addEventListener('timeupdate', () => {
248
230
  const status = this.getCurrentTrackStatus(this.lastState);
249
231
  if (lastTrackId !== this.getCurrentTrackId() || lastPosition !== status.currentPosition) {
250
- this.notifyListeners('status', {
251
- action: 'status',
252
- status: {
253
- msgType: RmxAudioStatusMessage.RMXSTATUS_PLAYBACK_POSITION,
254
- trackId: this.getCurrentTrackId(),
255
- value: status,
256
- }
257
- });
232
+ this.updateStatus(RmxAudioStatusMessage.RMXSTATUS_PLAYBACK_POSITION, status);
258
233
  lastTrackId = this.getCurrentTrackId();
259
234
  lastPosition = status.currentPosition;
260
235
  }
@@ -298,6 +273,11 @@ export class PlaylistWeb extends WebPlugin {
298
273
  this.audio.load();
299
274
  }
300
275
  this.audio = document.createElement('video');
276
+ if (wasPlaying) {
277
+ this.audio.addEventListener('canplay', () => {
278
+ this.play();
279
+ });
280
+ }
301
281
  this.currentTrack = item;
302
282
  if (item.assetUrl.includes('.m3u8')) {
303
283
  await this.loadHlsJs();
@@ -316,33 +296,26 @@ export class PlaylistWeb extends WebPlugin {
316
296
  this.audio.src = item.assetUrl;
317
297
  }
318
298
  await this.registerHtmlListeners(position);
319
- if (wasPlaying) {
320
- this.audio.addEventListener('canplay', () => {
321
- this.play();
322
- });
323
- }
299
+ this.updateStatus(RmxAudioStatusMessage.RMXSTATUS_TRACK_CHANGED, {
300
+ currentItem: item
301
+ });
302
+ }
303
+ updateStatus(msgType, value, trackId) {
324
304
  this.notifyListeners('status', {
325
305
  action: 'status',
326
306
  status: {
327
- msgType: RmxAudioStatusMessage.RMXSTATUS_TRACK_CHANGED,
328
- trackId: this.getCurrentTrackId(),
329
- value: {
330
- currentItem: item
331
- }
307
+ msgType: msgType,
308
+ trackId: trackId ? trackId : this.getCurrentTrackId(),
309
+ value: value
332
310
  }
333
311
  });
334
312
  }
335
- log(message, ...optionalParams) {
336
- if (this.options.verbose) {
337
- console.log(message, ...optionalParams);
338
- }
339
- }
340
313
  loadHlsJs() {
341
314
  if (this.hlsLoaded) {
342
315
  return Promise.resolve();
343
316
  }
344
317
  return new Promise((resolve, reject) => {
345
- var script = document.createElement('script');
318
+ const script = document.createElement('script');
346
319
  script.type = 'text/javascript';
347
320
  script.src = 'https://cdn.jsdelivr.net/npm/hls.js@1.1.1';
348
321
  document.getElementsByTagName('head')[0].appendChild(script);
@@ -1 +1 @@
1
- {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"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"}
@@ -585,15 +585,18 @@ class PlaylistWeb extends core.WebPlugin {
585
585
  const track = validateTrack(options.item);
586
586
  if (track) {
587
587
  this.playlistItems.push(track);
588
+ this.updateStatus(exports.RmxAudioStatusMessage.RMXSTATUS_ITEM_ADDED, track, track.trackId);
588
589
  }
589
590
  return Promise.resolve();
590
591
  }
591
592
  async clearAllItems() {
592
593
  await this.release();
593
594
  this.playlistItems = [];
595
+ this.updateStatus(exports.RmxAudioStatusMessage.RMXSTATUS_PLAYLIST_CLEARED, null, "INVALID");
594
596
  return Promise.resolve();
595
597
  }
596
598
  async initialize() {
599
+ this.updateStatus(exports.RmxAudioStatusMessage.RMXSTATUS_INIT, null, "INVALID");
597
600
  return Promise.resolve();
598
601
  }
599
602
  async pause() {
@@ -628,23 +631,26 @@ class PlaylistWeb extends core.WebPlugin {
628
631
  }
629
632
  async release() {
630
633
  await this.pause();
634
+ this.audio.src = "";
631
635
  this.audio = undefined;
632
636
  return Promise.resolve();
633
637
  }
634
638
  removeItem(options) {
635
639
  this.playlistItems.forEach((item, index) => {
636
640
  if (options.index && options.index === index) {
637
- this.playlistItems.splice(index, 1);
641
+ const removedTrack = this.playlistItems.splice(index, 1);
642
+ this.updateStatus(exports.RmxAudioStatusMessage.RMXSTATUS_ITEM_REMOVED, removedTrack[0], removedTrack[0].trackId);
638
643
  }
639
644
  else if (options.id && options.id === item.trackId) {
640
- this.playlistItems.splice(index, 1);
645
+ const removedTrack = this.playlistItems.splice(index, 1);
646
+ this.updateStatus(exports.RmxAudioStatusMessage.RMXSTATUS_ITEM_REMOVED, removedTrack[0], removedTrack[0].trackId);
641
647
  }
642
648
  });
643
649
  return Promise.resolve();
644
650
  }
645
651
  removeItems(options) {
646
- options.items.forEach((item) => {
647
- this.removeItem(item);
652
+ options.items.forEach(async (item) => {
653
+ await this.removeItem(item);
648
654
  });
649
655
  return Promise.resolve();
650
656
  }
@@ -689,14 +695,18 @@ class PlaylistWeb extends core.WebPlugin {
689
695
  return Promise.reject();
690
696
  }
691
697
  setPlaylistItems(options) {
692
- var _a;
698
+ var _a, _b;
693
699
  this.playlistItems = options.items;
694
700
  if (this.playlistItems.length > 0) {
695
- return this.setCurrent(this.playlistItems[0], ((_a = options.options) === null || _a === void 0 ? void 0 : _a.playFromPosition) || 0);
701
+ let currentItem = this.playlistItems.filter(i => { var _a; return i.trackId === ((_a = options.options) === null || _a === void 0 ? void 0 : _a.playFromId); })[0];
702
+ if (!currentItem) {
703
+ currentItem = this.playlistItems[0];
704
+ }
705
+ return this.setCurrent(currentItem, ((_a = options.options) === null || _a === void 0 ? void 0 : _a.retainPosition) ? (_b = options.options) === null || _b === void 0 ? void 0 : _b.playFromPosition : 0);
696
706
  }
697
707
  return Promise.resolve();
698
708
  }
699
- skipForward() {
709
+ async skipForward() {
700
710
  let found = null;
701
711
  this.playlistItems.forEach((item, index) => {
702
712
  if (!found && this.getCurrentTrackId() === item.trackId) {
@@ -707,11 +717,15 @@ class PlaylistWeb extends core.WebPlugin {
707
717
  found = -1;
708
718
  }
709
719
  if (found !== null) {
720
+ this.updateStatus(exports.RmxAudioStatusMessage.RMX_STATUS_SKIP_BACK, {
721
+ currentIndex: found + 1,
722
+ currentItem: this.playlistItems[found + 1]
723
+ }, this.playlistItems[found + 1].trackId);
710
724
  return this.setCurrent(this.playlistItems[found + 1]);
711
725
  }
712
726
  return Promise.reject();
713
727
  }
714
- skipBack() {
728
+ async skipBack() {
715
729
  let found = null;
716
730
  this.playlistItems.forEach((item, index) => {
717
731
  if (!found && this.getCurrentTrackId() === item.trackId) {
@@ -722,8 +736,11 @@ class PlaylistWeb extends core.WebPlugin {
722
736
  found = this.playlistItems.length - 1;
723
737
  }
724
738
  if (found !== null) {
725
- this.setCurrent(this.playlistItems[found - 1]);
726
- return Promise.resolve();
739
+ this.updateStatus(exports.RmxAudioStatusMessage.RMX_STATUS_SKIP_BACK, {
740
+ currentIndex: found - 1,
741
+ currentItem: this.playlistItems[found - 1]
742
+ }, this.playlistItems[found - 1].trackId);
743
+ return this.setCurrent(this.playlistItems[found - 1]);
727
744
  }
728
745
  return Promise.reject();
729
746
  }
@@ -754,14 +771,7 @@ class PlaylistWeb extends core.WebPlugin {
754
771
  registerHtmlListeners(position) {
755
772
  const canPlayListener = async () => {
756
773
  var _a;
757
- this.notifyListeners('status', {
758
- action: 'status',
759
- status: {
760
- msgType: exports.RmxAudioStatusMessage.RMXSTATUS_CANPLAY,
761
- trackId: this.getCurrentTrackId(),
762
- value: this.getCurrentTrackStatus('paused'),
763
- }
764
- });
774
+ this.updateStatus(exports.RmxAudioStatusMessage.RMXSTATUS_CANPLAY, this.getCurrentTrackStatus('paused'));
765
775
  if (position) {
766
776
  await this.seekTo({ position });
767
777
  }
@@ -770,57 +780,22 @@ class PlaylistWeb extends core.WebPlugin {
770
780
  if (this.audio) {
771
781
  this.audio.addEventListener('canplay', canPlayListener);
772
782
  this.audio.addEventListener('playing', () => {
773
- this.notifyListeners('status', {
774
- action: 'status',
775
- status: {
776
- msgType: exports.RmxAudioStatusMessage.RMXSTATUS_PLAYING,
777
- trackId: this.getCurrentTrackId(),
778
- value: this.getCurrentTrackStatus('playing'),
779
- }
780
- });
783
+ this.updateStatus(exports.RmxAudioStatusMessage.RMXSTATUS_PLAYING, this.getCurrentTrackStatus('playing'));
781
784
  });
782
785
  this.audio.addEventListener('pause', () => {
783
- this.notifyListeners('status', {
784
- action: 'status',
785
- status: {
786
- msgType: exports.RmxAudioStatusMessage.RMXSTATUS_PAUSE,
787
- trackId: this.getCurrentTrackId(),
788
- value: this.getCurrentTrackStatus('paused'),
789
- }
790
- });
786
+ this.updateStatus(exports.RmxAudioStatusMessage.RMXSTATUS_PAUSE, this.getCurrentTrackStatus('paused'));
791
787
  });
792
788
  this.audio.addEventListener('error', () => {
793
- this.notifyListeners('status', {
794
- action: 'status',
795
- status: {
796
- msgType: exports.RmxAudioStatusMessage.RMXSTATUS_ERROR,
797
- trackId: this.getCurrentTrackId(),
798
- value: this.getCurrentTrackStatus('error'),
799
- }
800
- });
789
+ this.updateStatus(exports.RmxAudioStatusMessage.RMXSTATUS_ERROR, this.getCurrentTrackStatus('error'));
801
790
  });
802
791
  this.audio.addEventListener('ended', () => {
803
- this.notifyListeners('status', {
804
- action: 'status',
805
- status: {
806
- msgType: exports.RmxAudioStatusMessage.RMXSTATUS_STOPPED,
807
- trackId: this.getCurrentTrackId(),
808
- value: this.getCurrentTrackStatus('stopped'),
809
- }
810
- });
792
+ this.updateStatus(exports.RmxAudioStatusMessage.RMXSTATUS_STOPPED, this.getCurrentTrackStatus('stopped'));
811
793
  });
812
794
  let lastTrackId, lastPosition;
813
795
  this.audio.addEventListener('timeupdate', () => {
814
796
  const status = this.getCurrentTrackStatus(this.lastState);
815
797
  if (lastTrackId !== this.getCurrentTrackId() || lastPosition !== status.currentPosition) {
816
- this.notifyListeners('status', {
817
- action: 'status',
818
- status: {
819
- msgType: exports.RmxAudioStatusMessage.RMXSTATUS_PLAYBACK_POSITION,
820
- trackId: this.getCurrentTrackId(),
821
- value: status,
822
- }
823
- });
798
+ this.updateStatus(exports.RmxAudioStatusMessage.RMXSTATUS_PLAYBACK_POSITION, status);
824
799
  lastTrackId = this.getCurrentTrackId();
825
800
  lastPosition = status.currentPosition;
826
801
  }
@@ -864,6 +839,11 @@ class PlaylistWeb extends core.WebPlugin {
864
839
  this.audio.load();
865
840
  }
866
841
  this.audio = document.createElement('video');
842
+ if (wasPlaying) {
843
+ this.audio.addEventListener('canplay', () => {
844
+ this.play();
845
+ });
846
+ }
867
847
  this.currentTrack = item;
868
848
  if (item.assetUrl.includes('.m3u8')) {
869
849
  await this.loadHlsJs();
@@ -882,33 +862,26 @@ class PlaylistWeb extends core.WebPlugin {
882
862
  this.audio.src = item.assetUrl;
883
863
  }
884
864
  await this.registerHtmlListeners(position);
885
- if (wasPlaying) {
886
- this.audio.addEventListener('canplay', () => {
887
- this.play();
888
- });
889
- }
865
+ this.updateStatus(exports.RmxAudioStatusMessage.RMXSTATUS_TRACK_CHANGED, {
866
+ currentItem: item
867
+ });
868
+ }
869
+ updateStatus(msgType, value, trackId) {
890
870
  this.notifyListeners('status', {
891
871
  action: 'status',
892
872
  status: {
893
- msgType: exports.RmxAudioStatusMessage.RMXSTATUS_TRACK_CHANGED,
894
- trackId: this.getCurrentTrackId(),
895
- value: {
896
- currentItem: item
897
- }
873
+ msgType: msgType,
874
+ trackId: trackId ? trackId : this.getCurrentTrackId(),
875
+ value: value
898
876
  }
899
877
  });
900
878
  }
901
- log(message, ...optionalParams) {
902
- if (this.options.verbose) {
903
- console.log(message, ...optionalParams);
904
- }
905
- }
906
879
  loadHlsJs() {
907
880
  if (this.hlsLoaded) {
908
881
  return Promise.resolve();
909
882
  }
910
883
  return new Promise((resolve, reject) => {
911
- var script = document.createElement('script');
884
+ const script = document.createElement('script');
912
885
  script.type = 'text/javascript';
913
886
  script.src = 'https://cdn.jsdelivr.net/npm/hls.js@1.1.1';
914
887
  document.getElementsByTagName('head')[0].appendChild(script);