【发布时间】:2016-08-25 23:09:28
【问题描述】:
我们正在使用 hapyak 加载我们的视频播放列表。我们添加了自定义速度按钮,允许用户提高或降低播放速度。
较慢(点击 1 次会使视频减慢 5%,最慢的是从 100% 减慢 80%)。
正常点击可将视频恢复到 100%。
较快与较慢相同,但速度较快,最大值为 150%。
基本上发生的情况是当视频发生变化(没有页面重新加载)时,按钮保持其当前数量(通常为 150%),但视频上不存在效果。点击“播放速度”按钮不会执行任何操作,但如果您点击“播放速度较慢”将其降至 145%,然后点击返回以加快播放速度,它将以 150% 的速度继续播放视频。
有没有一种方法可以同时获得速度变量和在整个播放列表中延续的效果?
var currentSpeed = 1;
var fadeout_timer = setTimeout(function() {
$( "#videoSpeed" ).fadeOut();
}, 1600);
function updateSpeed() {
document.getElementById("videoSpeedCounter").innerHTML = (Math.round(currentSpeed * 100)) + "%";
if ($("#videoSpeed").is(":hidden")) {
$( "#videoSpeed" ).fadeIn();
}
// Fade out after 1600ms from last click -- clearTimeout resets the fadeout timer.
clearTimeout(fadeout_timer);
fadeout_timer = setTimeout(function() {
$( "#videoSpeed" ).fadeOut();
}, 1600);
return false;
}
function speedIncrease() {
if (currentSpeed < 1.50) {
currentSpeed = currentSpeed + 0.05;
hapyak.playlist.get()._player.playbackRate(currentSpeed);
updateSpeed();
}
return false;
}
function speedDecrease() {
if (currentSpeed > .8) {
currentSpeed = currentSpeed - 0.05;
hapyak.playlist.get()._player.playbackRate(currentSpeed);
updateSpeed();
}
return false;
}
function resetSpeed() {
currentSpeed = 1;
hapyak.playlist.get()._player.playbackRate(currentSpeed);
updateSpeed();
}
function nextVideo() {
currentSpeed = currentSpeed
hapyak.playlist.get()._player.playbackRate(currentSpeed);
}
var hapyakPlaylist = hapyak.playlist.get();
console.log("Playlists: " + hapyakPlaylist);
理论上,我相信我只需要一种方法来保存currentSpeed,这样它就不会在开始时重置。
<div class="video-speed-buttons-container">
<a onclick="speedDecrease()"><div class="video-speed-button first">Play slower</div></a>
<a onclick="resetSpeed()"><div class="video-speed-button">Normal speed</div></a>
<a onclick="speedIncrease()"><div class="video-speed-button">Play faster</div></a>
<div class="video-speedometer" id="videoSpeed">Speed: <span id="videoSpeedCounter">100%</span></div>
</div>
【问题讨论】:
标签: jquery performance video