@saooti/octopus-sdk 31.0.52 → 31.0.54

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
@@ -643,3 +643,5 @@ See [Configuration Reference](https://cli.vuejs.org/config/).
643
643
  * 31.0.50 Améliorations responsive
644
644
  * 31.0.51 Newest
645
645
  * 31.0.52 Locale
646
+ * 31.0.53 Correction playerLogic
647
+ * 31.0.54 Test live ios
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@saooti/octopus-sdk",
3
- "version": "31.0.52",
3
+ "version": "31.0.54",
4
4
  "private": false,
5
5
  "description": "Javascript SDK for using octopus",
6
6
  "author": "Saooti",
@@ -14,6 +14,7 @@ export const playerLive = defineComponent({
14
14
  lastSend: 0 as number,
15
15
  hlsReady: false as boolean,
16
16
  downloadId: null as string|null,
17
+ audioElement: null as HTMLAudioElement|null
17
18
  };
18
19
  },
19
20
  computed: {
@@ -33,14 +34,36 @@ export const playerLive = defineComponent({
33
34
  this.live.conferenceId +
34
35
  '/index.m3u8';
35
36
  try {
36
- await this.initHls(hlsStreamUrl);
37
+ this.audioElement = (document.getElementById('audio-player') as HTMLAudioElement);
38
+ if (this.audioElement && this.audioElement.canPlayType('application/vnd.apple.mpegurl')) {
39
+ this.audioElement.src = hlsStreamUrl;
40
+ await this.initLiveDownloadId();
41
+ await (this.audioElement as HTMLAudioElement).play();
42
+ this.onPlay();
43
+ }else{
44
+ await this.initHls(hlsStreamUrl);
45
+ }
37
46
  } catch (error) {
38
- console.log(error);
39
47
  setTimeout(() => {
40
48
  this.playLive();
41
49
  }, 1000);
42
50
  }
43
51
  },
52
+ async initLiveDownloadId(){
53
+ if(!this.live){ return;}
54
+ let downloadId = null;
55
+ try {
56
+ downloadId = await octopusApi.putDataPublic<string | null>(0, 'podcast/prepare/live/'+this.live.livePodcastId, undefined);
57
+ await octopusApi.fetchDataPublicWithParams<string | null>(0,'podcast/download/live/' + this.live.livePodcastId+".m3u8",{
58
+ 'downloadId': null!==downloadId ? downloadId : undefined,
59
+ 'origin':'octopus',
60
+ 'distributorId':this.$store.state.authentication.organisationId
61
+ });
62
+ this.setDownloadId(downloadId);
63
+ } catch (error) {
64
+ console.log('ERROR downloadId');
65
+ }
66
+ },
44
67
  async initHls(hlsStreamUrl: string): Promise<void> {
45
68
  return new Promise<void>(async(resolve, reject) => {
46
69
  if(null === Hls){
@@ -55,7 +78,7 @@ export const playerLive = defineComponent({
55
78
  if (!Hls.isSupported()) {
56
79
  reject('Hls is not supported ! ');
57
80
  }
58
- let hls = new Hls();
81
+ const hls = new Hls();
59
82
  /* if(this.$store.state.authentication.isAuthenticated && this.$store.state.oAuthParam.accessToken){
60
83
  hls = new Hls({xhrSetup:
61
84
  (xhr: XMLHttpRequest) => {
@@ -65,23 +88,10 @@ export const playerLive = defineComponent({
65
88
  );
66
89
  } */
67
90
  hls.on(Hls.Events.MANIFEST_PARSED, async () => {
68
- if(!this.live){ return; }
69
- let downloadId = null;
70
- try {
71
- downloadId = await octopusApi.putDataPublic<string | null>(0, 'podcast/prepare/live/'+this.live.livePodcastId, undefined);
72
- await octopusApi.fetchDataPublicWithParams<string | null>(0,'podcast/download/live/' + this.live.livePodcastId+".m3u8",{
73
- 'downloadId': null!==downloadId ? downloadId : undefined,
74
- 'origin':'octopus',
75
- 'distributorId':this.$store.state.authentication.organisationId
76
- });
77
- this.setDownloadId(downloadId);
78
- } catch (error) {
79
- console.log('ERROR downloadId');
80
- }
91
+ await this.initLiveDownloadId();
81
92
  this.hlsReady = true;
82
- const audio: HTMLElement|null = document.getElementById('audio-player');
83
- hls.attachMedia((audio as HTMLAudioElement));
84
- await (audio as HTMLAudioElement).play();
93
+ hls.attachMedia((this.audioElement as HTMLAudioElement));
94
+ await (this.audioElement as HTMLAudioElement).play();
85
95
  this.onPlay();
86
96
  resolve();
87
97
  });
@@ -50,8 +50,8 @@ export const playerLogic = defineComponent({
50
50
  if(this.media || !this.podcast || !this.podcast.availability.visibility ||this.listenError){
51
51
  this.audioUrlToPlay = this.audioUrl;
52
52
  }
53
- if(!this.podcast){return;}
54
- const response = await octopusApi.fetchDataPublic<{location:string, downloadId: number}>(0,"podcast/download/register/"+ this.audioUrl);
53
+ if(!this.podcast || !this.podcast.availability.visibility ||this.listenError){return;}
54
+ const response = await octopusApi.fetchDataPublic<{location:string, downloadId: number}>(0,"podcast/download/register/"+ this.getAudioUrlParameters());
55
55
  this.setDownloadId(response.downloadId.toString());
56
56
  this.audioUrlToPlay = response.location;
57
57
  },
@@ -101,12 +101,8 @@ export const playerLogic = defineComponent({
101
101
  }
102
102
  return domain;
103
103
  },
104
- getAudioUrl(): string{
105
- if (this.media) return this.media.audioUrl? this.media.audioUrl:"";
104
+ getAudioUrlParameters(): string{
106
105
  if (!this.podcast) return '';
107
- if (!this.podcast.availability.visibility)
108
- return this.podcast.audioStorageUrl;
109
- if (this.listenError) return this.podcast.audioStorageUrl;
110
106
  const parameters = [];
111
107
  parameters.push('origin=octopus');
112
108
  parameters.push('listenerId='+this.getListenerId());
@@ -123,6 +119,14 @@ export const playerLogic = defineComponent({
123
119
  }
124
120
  return this.podcast.podcastId + '.mp3?' + parameters.join('&');
125
121
  },
122
+ getAudioUrl(): string{
123
+ if (this.media) return this.media.audioUrl? this.media.audioUrl:"";
124
+ if (!this.podcast) return '';
125
+ if (!this.podcast.availability.visibility)
126
+ return this.podcast.audioStorageUrl;
127
+ if (this.listenError) return this.podcast.audioStorageUrl;
128
+ return this.getAudioUrlParameters();
129
+ },
126
130
  reInitPlayer():void{
127
131
  this.setDownloadId(null);
128
132
  this.listenError = false;