capacitor-plugin-playlist 0.1.27 → 0.1.28

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()
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() {
@@ -68,17 +71,19 @@ export class PlaylistWeb extends WebPlugin {
68
71
  removeItem(options) {
69
72
  this.playlistItems.forEach((item, index) => {
70
73
  if (options.index && options.index === index) {
71
- this.playlistItems.splice(index, 1);
74
+ const removedTrack = this.playlistItems.splice(index, 1);
75
+ this.updateStatus(RmxAudioStatusMessage.RMXSTATUS_ITEM_ADDED, removedTrack[0], removedTrack[0].trackId);
72
76
  }
73
77
  else if (options.id && options.id === item.trackId) {
74
- this.playlistItems.splice(index, 1);
78
+ const removedTrack = this.playlistItems.splice(index, 1);
79
+ this.updateStatus(RmxAudioStatusMessage.RMXSTATUS_ITEM_ADDED, removedTrack[0], removedTrack[0].trackId);
75
80
  }
76
81
  });
77
82
  return Promise.resolve();
78
83
  }
79
84
  removeItems(options) {
80
- options.items.forEach((item) => {
81
- this.removeItem(item);
85
+ options.items.forEach(async (item) => {
86
+ await this.removeItem(item);
82
87
  });
83
88
  return Promise.resolve();
84
89
  }
@@ -130,7 +135,7 @@ export class PlaylistWeb extends WebPlugin {
130
135
  }
131
136
  return Promise.resolve();
132
137
  }
133
- skipForward() {
138
+ async skipForward() {
134
139
  let found = null;
135
140
  this.playlistItems.forEach((item, index) => {
136
141
  if (!found && this.getCurrentTrackId() === item.trackId) {
@@ -141,11 +146,15 @@ export class PlaylistWeb extends WebPlugin {
141
146
  found = -1;
142
147
  }
143
148
  if (found !== null) {
149
+ this.updateStatus(RmxAudioStatusMessage.RMX_STATUS_SKIP_BACK, {
150
+ currentIndex: found + 1,
151
+ currentItem: this.playlistItems[found + 1]
152
+ }, this.playlistItems[found + 1].trackId);
144
153
  return this.setCurrent(this.playlistItems[found + 1]);
145
154
  }
146
155
  return Promise.reject();
147
156
  }
148
- skipBack() {
157
+ async skipBack() {
149
158
  let found = null;
150
159
  this.playlistItems.forEach((item, index) => {
151
160
  if (!found && this.getCurrentTrackId() === item.trackId) {
@@ -156,8 +165,11 @@ export class PlaylistWeb extends WebPlugin {
156
165
  found = this.playlistItems.length - 1;
157
166
  }
158
167
  if (found !== null) {
159
- this.setCurrent(this.playlistItems[found - 1]);
160
- return Promise.resolve();
168
+ this.updateStatus(RmxAudioStatusMessage.RMX_STATUS_SKIP_BACK, {
169
+ currentIndex: found - 1,
170
+ currentItem: this.playlistItems[found - 1]
171
+ }, this.playlistItems[found - 1].trackId);
172
+ return this.setCurrent(this.playlistItems[found - 1]);
161
173
  }
162
174
  return Promise.reject();
163
175
  }
@@ -188,14 +200,7 @@ export class PlaylistWeb extends WebPlugin {
188
200
  registerHtmlListeners(position) {
189
201
  const canPlayListener = async () => {
190
202
  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
- });
203
+ this.updateStatus(RmxAudioStatusMessage.RMXSTATUS_CANPLAY, this.getCurrentTrackStatus('paused'));
199
204
  if (position) {
200
205
  await this.seekTo({ position });
201
206
  }
@@ -204,57 +209,22 @@ export class PlaylistWeb extends WebPlugin {
204
209
  if (this.audio) {
205
210
  this.audio.addEventListener('canplay', canPlayListener);
206
211
  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
- });
212
+ this.updateStatus(RmxAudioStatusMessage.RMXSTATUS_PLAYING, this.getCurrentTrackStatus('playing'));
215
213
  });
216
214
  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
- });
215
+ this.updateStatus(RmxAudioStatusMessage.RMXSTATUS_PAUSE, this.getCurrentTrackStatus('paused'));
225
216
  });
226
217
  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
- });
218
+ this.updateStatus(RmxAudioStatusMessage.RMXSTATUS_ERROR, this.getCurrentTrackStatus('error'));
235
219
  });
236
220
  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
- });
221
+ this.updateStatus(RmxAudioStatusMessage.RMXSTATUS_STOPPED, this.getCurrentTrackStatus('stopped'));
245
222
  });
246
223
  let lastTrackId, lastPosition;
247
224
  this.audio.addEventListener('timeupdate', () => {
248
225
  const status = this.getCurrentTrackStatus(this.lastState);
249
226
  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
- });
227
+ this.updateStatus(RmxAudioStatusMessage.RMXSTATUS_PLAYBACK_POSITION, status);
258
228
  lastTrackId = this.getCurrentTrackId();
259
229
  lastPosition = status.currentPosition;
260
230
  }
@@ -321,28 +291,26 @@ export class PlaylistWeb extends WebPlugin {
321
291
  this.play();
322
292
  });
323
293
  }
294
+ this.updateStatus(RmxAudioStatusMessage.RMXSTATUS_TRACK_CHANGED, {
295
+ currentItem: item
296
+ });
297
+ }
298
+ updateStatus(msgType, value, trackId) {
324
299
  this.notifyListeners('status', {
325
300
  action: 'status',
326
301
  status: {
327
- msgType: RmxAudioStatusMessage.RMXSTATUS_TRACK_CHANGED,
328
- trackId: this.getCurrentTrackId(),
329
- value: {
330
- currentItem: item
331
- }
302
+ msgType: msgType,
303
+ trackId: trackId ? trackId : this.getCurrentTrackId(),
304
+ value: value
332
305
  }
333
306
  });
334
307
  }
335
- log(message, ...optionalParams) {
336
- if (this.options.verbose) {
337
- console.log(message, ...optionalParams);
338
- }
339
- }
340
308
  loadHlsJs() {
341
309
  if (this.hlsLoaded) {
342
310
  return Promise.resolve();
343
311
  }
344
312
  return new Promise((resolve, reject) => {
345
- var script = document.createElement('script');
313
+ const script = document.createElement('script');
346
314
  script.type = 'text/javascript';
347
315
  script.src = 'https://cdn.jsdelivr.net/npm/hls.js@1.1.1';
348
316
  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() {
@@ -634,17 +637,19 @@ class PlaylistWeb extends core.WebPlugin {
634
637
  removeItem(options) {
635
638
  this.playlistItems.forEach((item, index) => {
636
639
  if (options.index && options.index === index) {
637
- this.playlistItems.splice(index, 1);
640
+ const removedTrack = this.playlistItems.splice(index, 1);
641
+ this.updateStatus(exports.RmxAudioStatusMessage.RMXSTATUS_ITEM_ADDED, removedTrack[0], removedTrack[0].trackId);
638
642
  }
639
643
  else if (options.id && options.id === item.trackId) {
640
- this.playlistItems.splice(index, 1);
644
+ const removedTrack = this.playlistItems.splice(index, 1);
645
+ this.updateStatus(exports.RmxAudioStatusMessage.RMXSTATUS_ITEM_ADDED, removedTrack[0], removedTrack[0].trackId);
641
646
  }
642
647
  });
643
648
  return Promise.resolve();
644
649
  }
645
650
  removeItems(options) {
646
- options.items.forEach((item) => {
647
- this.removeItem(item);
651
+ options.items.forEach(async (item) => {
652
+ await this.removeItem(item);
648
653
  });
649
654
  return Promise.resolve();
650
655
  }
@@ -696,7 +701,7 @@ class PlaylistWeb extends core.WebPlugin {
696
701
  }
697
702
  return Promise.resolve();
698
703
  }
699
- skipForward() {
704
+ async skipForward() {
700
705
  let found = null;
701
706
  this.playlistItems.forEach((item, index) => {
702
707
  if (!found && this.getCurrentTrackId() === item.trackId) {
@@ -707,11 +712,15 @@ class PlaylistWeb extends core.WebPlugin {
707
712
  found = -1;
708
713
  }
709
714
  if (found !== null) {
715
+ this.updateStatus(exports.RmxAudioStatusMessage.RMX_STATUS_SKIP_BACK, {
716
+ currentIndex: found + 1,
717
+ currentItem: this.playlistItems[found + 1]
718
+ }, this.playlistItems[found + 1].trackId);
710
719
  return this.setCurrent(this.playlistItems[found + 1]);
711
720
  }
712
721
  return Promise.reject();
713
722
  }
714
- skipBack() {
723
+ async skipBack() {
715
724
  let found = null;
716
725
  this.playlistItems.forEach((item, index) => {
717
726
  if (!found && this.getCurrentTrackId() === item.trackId) {
@@ -722,8 +731,11 @@ class PlaylistWeb extends core.WebPlugin {
722
731
  found = this.playlistItems.length - 1;
723
732
  }
724
733
  if (found !== null) {
725
- this.setCurrent(this.playlistItems[found - 1]);
726
- return Promise.resolve();
734
+ this.updateStatus(exports.RmxAudioStatusMessage.RMX_STATUS_SKIP_BACK, {
735
+ currentIndex: found - 1,
736
+ currentItem: this.playlistItems[found - 1]
737
+ }, this.playlistItems[found - 1].trackId);
738
+ return this.setCurrent(this.playlistItems[found - 1]);
727
739
  }
728
740
  return Promise.reject();
729
741
  }
@@ -754,14 +766,7 @@ class PlaylistWeb extends core.WebPlugin {
754
766
  registerHtmlListeners(position) {
755
767
  const canPlayListener = async () => {
756
768
  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
- });
769
+ this.updateStatus(exports.RmxAudioStatusMessage.RMXSTATUS_CANPLAY, this.getCurrentTrackStatus('paused'));
765
770
  if (position) {
766
771
  await this.seekTo({ position });
767
772
  }
@@ -770,57 +775,22 @@ class PlaylistWeb extends core.WebPlugin {
770
775
  if (this.audio) {
771
776
  this.audio.addEventListener('canplay', canPlayListener);
772
777
  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
- });
778
+ this.updateStatus(exports.RmxAudioStatusMessage.RMXSTATUS_PLAYING, this.getCurrentTrackStatus('playing'));
781
779
  });
782
780
  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
- });
781
+ this.updateStatus(exports.RmxAudioStatusMessage.RMXSTATUS_PAUSE, this.getCurrentTrackStatus('paused'));
791
782
  });
792
783
  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
- });
784
+ this.updateStatus(exports.RmxAudioStatusMessage.RMXSTATUS_ERROR, this.getCurrentTrackStatus('error'));
801
785
  });
802
786
  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
- });
787
+ this.updateStatus(exports.RmxAudioStatusMessage.RMXSTATUS_STOPPED, this.getCurrentTrackStatus('stopped'));
811
788
  });
812
789
  let lastTrackId, lastPosition;
813
790
  this.audio.addEventListener('timeupdate', () => {
814
791
  const status = this.getCurrentTrackStatus(this.lastState);
815
792
  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
- });
793
+ this.updateStatus(exports.RmxAudioStatusMessage.RMXSTATUS_PLAYBACK_POSITION, status);
824
794
  lastTrackId = this.getCurrentTrackId();
825
795
  lastPosition = status.currentPosition;
826
796
  }
@@ -887,28 +857,26 @@ class PlaylistWeb extends core.WebPlugin {
887
857
  this.play();
888
858
  });
889
859
  }
860
+ this.updateStatus(exports.RmxAudioStatusMessage.RMXSTATUS_TRACK_CHANGED, {
861
+ currentItem: item
862
+ });
863
+ }
864
+ updateStatus(msgType, value, trackId) {
890
865
  this.notifyListeners('status', {
891
866
  action: 'status',
892
867
  status: {
893
- msgType: exports.RmxAudioStatusMessage.RMXSTATUS_TRACK_CHANGED,
894
- trackId: this.getCurrentTrackId(),
895
- value: {
896
- currentItem: item
897
- }
868
+ msgType: msgType,
869
+ trackId: trackId ? trackId : this.getCurrentTrackId(),
870
+ value: value
898
871
  }
899
872
  });
900
873
  }
901
- log(message, ...optionalParams) {
902
- if (this.options.verbose) {
903
- console.log(message, ...optionalParams);
904
- }
905
- }
906
874
  loadHlsJs() {
907
875
  if (this.hlsLoaded) {
908
876
  return Promise.resolve();
909
877
  }
910
878
  return new Promise((resolve, reject) => {
911
- var script = document.createElement('script');
879
+ const script = document.createElement('script');
912
880
  script.type = 'text/javascript';
913
881
  script.src = 'https://cdn.jsdelivr.net/npm/hls.js@1.1.1';
914
882
  document.getElementsByTagName('head')[0].appendChild(script);