Spaces:
Running
Running
Update index.html
Browse files- index.html +25 -2
index.html
CHANGED
@@ -49,6 +49,12 @@
|
|
49 |
<input type="number" id="speedInput" min="0.0001" step="0.0001" value="1">
|
50 |
</div>
|
51 |
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
<div class="control-group">
|
53 |
<label for="loopCheckbox">ループ再生:</label>
|
54 |
<input type="checkbox" id="loopCheckbox" checked>
|
@@ -56,10 +62,13 @@
|
|
56 |
|
57 |
<button onclick="goFullscreen()">全画面</button>
|
58 |
</div>
|
|
|
59 |
<script>
|
60 |
const video = document.getElementById('videoPlayer');
|
61 |
const speedRange = document.getElementById('speedRange');
|
62 |
const speedInput = document.getElementById('speedInput');
|
|
|
|
|
63 |
const loopCheckbox = document.getElementById('loopCheckbox');
|
64 |
|
65 |
function updatePlaybackRate(value) {
|
@@ -69,17 +78,30 @@
|
|
69 |
video.playbackRate = speed;
|
70 |
}
|
71 |
|
72 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
['input', 'change', 'mouseup'].forEach(eventName => {
|
74 |
speedRange.addEventListener(eventName, () => {
|
75 |
updatePlaybackRate(speedRange.value);
|
76 |
});
|
|
|
|
|
|
|
77 |
});
|
78 |
|
79 |
speedInput.addEventListener('input', () => {
|
80 |
updatePlaybackRate(speedInput.value);
|
81 |
});
|
82 |
|
|
|
|
|
|
|
|
|
83 |
loopCheckbox.addEventListener('change', () => {
|
84 |
video.loop = loopCheckbox.checked;
|
85 |
});
|
@@ -96,8 +118,9 @@
|
|
96 |
|
97 |
video.addEventListener('loadedmetadata', () => {
|
98 |
updatePlaybackRate(speedRange.value);
|
|
|
99 |
video.loop = loopCheckbox.checked;
|
100 |
});
|
101 |
</script>
|
102 |
</body>
|
103 |
-
</html>
|
|
|
49 |
<input type="number" id="speedInput" min="0.0001" step="0.0001" value="1">
|
50 |
</div>
|
51 |
|
52 |
+
<div class="control-group">
|
53 |
+
<label for="volumeRange">音量:</label>
|
54 |
+
<input type="range" id="volumeRange" min="0" max="1" step="0.01" value="1">
|
55 |
+
<input type="number" id="volumeInput" min="0" max="1" step="0.01" value="1">
|
56 |
+
</div>
|
57 |
+
|
58 |
<div class="control-group">
|
59 |
<label for="loopCheckbox">ループ再生:</label>
|
60 |
<input type="checkbox" id="loopCheckbox" checked>
|
|
|
62 |
|
63 |
<button onclick="goFullscreen()">全画面</button>
|
64 |
</div>
|
65 |
+
|
66 |
<script>
|
67 |
const video = document.getElementById('videoPlayer');
|
68 |
const speedRange = document.getElementById('speedRange');
|
69 |
const speedInput = document.getElementById('speedInput');
|
70 |
+
const volumeRange = document.getElementById('volumeRange');
|
71 |
+
const volumeInput = document.getElementById('volumeInput');
|
72 |
const loopCheckbox = document.getElementById('loopCheckbox');
|
73 |
|
74 |
function updatePlaybackRate(value) {
|
|
|
78 |
video.playbackRate = speed;
|
79 |
}
|
80 |
|
81 |
+
function updateVolume(value) {
|
82 |
+
const volume = parseFloat(value);
|
83 |
+
volumeInput.value = volume;
|
84 |
+
volumeRange.value = volume;
|
85 |
+
video.volume = volume;
|
86 |
+
}
|
87 |
+
|
88 |
['input', 'change', 'mouseup'].forEach(eventName => {
|
89 |
speedRange.addEventListener(eventName, () => {
|
90 |
updatePlaybackRate(speedRange.value);
|
91 |
});
|
92 |
+
volumeRange.addEventListener(eventName, () => {
|
93 |
+
updateVolume(volumeRange.value);
|
94 |
+
});
|
95 |
});
|
96 |
|
97 |
speedInput.addEventListener('input', () => {
|
98 |
updatePlaybackRate(speedInput.value);
|
99 |
});
|
100 |
|
101 |
+
volumeInput.addEventListener('input', () => {
|
102 |
+
updateVolume(volumeInput.value);
|
103 |
+
});
|
104 |
+
|
105 |
loopCheckbox.addEventListener('change', () => {
|
106 |
video.loop = loopCheckbox.checked;
|
107 |
});
|
|
|
118 |
|
119 |
video.addEventListener('loadedmetadata', () => {
|
120 |
updatePlaybackRate(speedRange.value);
|
121 |
+
updateVolume(volumeRange.value);
|
122 |
video.loop = loopCheckbox.checked;
|
123 |
});
|
124 |
</script>
|
125 |
</body>
|
126 |
+
</html>
|