| author | ymh <ymh.work@gmail.com> |
| Fri, 18 Oct 2024 10:24:57 +0200 | |
| changeset 1074 | 231ea5ea7de4 |
| parent 1072 | ac1eacb3aa33 |
| permissions | -rw-r--r-- |
|
1072
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
1 |
// JwpPlayer |
| 958 | 2 |
|
|
1072
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
3 |
import { Player } from "jwplayer"; |
| 958 | 4 |
|
|
1072
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
5 |
const JwpPlayerWidget = function (ns) { |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
6 |
return class extends ns.Widgets.Widget { |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
7 |
constructor(player, config) { |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
8 |
super(player, config); |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
9 |
} |
| 958 | 10 |
|
|
1072
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
11 |
static defaults = {}; |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
12 |
|
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
13 |
draw() { |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
14 |
var _opts = {}, |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
15 |
_player = Player(this.$[0]), |
| 958 | 16 |
_seekPause = false, |
| 1005 | 17 |
_pauseState = true; |
|
1072
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
18 |
|
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
19 |
if (typeof this.video === "undefined") { |
| 958 | 20 |
this.video = this.media.video; |
|
1072
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
21 |
} |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
22 |
|
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
23 |
_opts.file = this.video; |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
24 |
_opts.primary = "flash"; |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
25 |
_opts.fallback = false; |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
26 |
_opts.controls = false; |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
27 |
_opts.width = this.width; |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
28 |
if (this.height) { |
| 987 | 29 |
_opts.height = this.height; |
|
1072
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
30 |
} |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
31 |
|
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
32 |
if (this.autostart) { |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
33 |
// There seems to be an autostart bug |
| 1005 | 34 |
//_opts.autostart = true; |
35 |
//_pauseState = false; |
|
36 |
//this.media.trigger("play"); |
|
|
1072
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
37 |
} |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
38 |
|
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
39 |
if (this.url_transform) { |
| 1007 | 40 |
_opts.file = this.url_transform(_opts.file); |
|
1072
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
41 |
} |
| 970 | 42 |
|
|
1072
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
43 |
// Binding functions to jwplayer |
| 958 | 44 |
|
|
1072
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
45 |
var _media = this.media; |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
46 |
|
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
47 |
_media.on("setcurrenttime", function (_milliseconds) { |
| 958 | 48 |
_seekPause = _pauseState; |
| 970 | 49 |
_player.seek(_milliseconds / 1000); |
|
1072
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
50 |
}); |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
51 |
|
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
52 |
_media.on("setvolume", function (_vol) { |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
53 |
_player.setVolume(Math.floor(_vol * 100)); |
| 970 | 54 |
_media.volume = _vol; |
|
1072
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
55 |
}); |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
56 |
|
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
57 |
_media.on("setmuted", function (_muted) { |
| 970 | 58 |
_player.setMute(_muted); |
59 |
_media.muted = _muted; |
|
|
1072
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
60 |
}); |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
61 |
|
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
62 |
_media.on("setplay", function () { |
| 970 | 63 |
_player.play(true); |
64 |
_media.paused = false; |
|
|
1072
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
65 |
}); |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
66 |
|
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
67 |
_media.on("setpause", function () { |
| 970 | 68 |
_player.pause(true); |
69 |
_media.paused = true; |
|
|
1072
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
70 |
}); |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
71 |
|
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
72 |
// Binding jwplater events to media |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
73 |
|
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
74 |
function getVolume() { |
| 970 | 75 |
_media.muted = _player.getMute(); |
76 |
_media.volume = _player.getVolume() / 100; |
|
|
1072
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
77 |
} |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
78 |
|
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
79 |
_opts.events = { |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
80 |
onReady: function () { |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
81 |
getVolume(); |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
82 |
_media.currentTime = new ns.Model.Time( |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
83 |
1000 * _player.getPosition() || 0 |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
84 |
); |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
85 |
_media.trigger("loadedmetadata"); |
| 958 | 86 |
}, |
|
1072
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
87 |
onTime: function (_progress) { |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
88 |
if (_seekPause) { |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
89 |
_player.pause(true); |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
90 |
_seekPause = false; |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
91 |
} else { |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
92 |
if (_pauseState && _player.getState() === "PLAYING") { |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
93 |
_pauseState = false; |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
94 |
_media.trigger("play"); |
| 958 | 95 |
} |
|
1072
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
96 |
} |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
97 |
_media.trigger( |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
98 |
"timeupdate", |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
99 |
new ns.Model.Time(_progress.position * 1000) |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
100 |
); |
| 958 | 101 |
}, |
|
1072
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
102 |
onPlay: function () { |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
103 |
if (!_seekPause) { |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
104 |
_pauseState = false; |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
105 |
_media.trigger("play"); |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
106 |
} |
| 958 | 107 |
}, |
|
1072
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
108 |
onPause: function () { |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
109 |
_pauseState = true; |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
110 |
_media.trigger("pause"); |
| 958 | 111 |
}, |
|
1072
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
112 |
onSeek: function () { |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
113 |
_media.trigger("seeked"); |
| 970 | 114 |
}, |
|
1072
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
115 |
onMute: function (_event) { |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
116 |
_media.muted = _event.mute; |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
117 |
_media.trigger("volumechange"); |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
118 |
}, |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
119 |
onVolume: function (_event) { |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
120 |
_media.volume = _event.volume / 100; |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
121 |
_media.trigger("volumechange"); |
| 970 | 122 |
}, |
|
1072
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
123 |
}; |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
124 |
|
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
125 |
_player = _player.setup(_opts); |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
126 |
|
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
127 |
this.jwplayer = _player; |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
128 |
} |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
129 |
}; |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
130 |
}; |
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
131 |
|
|
ac1eacb3aa33
Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents:
1013
diff
changeset
|
132 |
export { JwpPlayerWidget as JwpPlayer }; |