diff --git a/README.md b/README.md index 519a9b0..0852095 100644 --- a/README.md +++ b/README.md @@ -15,11 +15,12 @@ HTML5 video provides a native API to accelerate playback of any video. The probl #### *[Install Chrome Extension](https://chrome.google.com/webstore/detail/video-speed-controller/nffaoalbilbmmfgbnbgppjihopabppdk)* -Once the extension is installed simply navigate to any page that offers HTML5 video ([example](http://www.youtube.com/watch?v=E9FxNzv1Tr8)), and you'll see a speed indicator in top left corner. Hover over the indicator to reveal the controls to accelerate, slowdown, and quickly rewind the video. Or, even better, simply use your keyboard: +Once the extension is installed simply navigate to any page that offers HTML5 video ([example](http://www.youtube.com/watch?v=E9FxNzv1Tr8)), and you'll see a speed indicator in top left corner. Hover over the indicator to reveal the controls to accelerate, slowdown, and quickly rewind or advance the video. Or, even better, simply use your keyboard: * **a** - rewind video 10 seconds. * **s** - decrease playback speed. * **d** - increase playback speed. +* **t** - advance video 10 seconds. Note that you can customize these shortcuts in the extension settings page. Also, a few tips for enabling and forcing HTML5 video: diff --git a/inject.js b/inject.js index 608ddb0..c74cbda 100644 --- a/inject.js +++ b/inject.js @@ -5,10 +5,12 @@ chrome.extension.sendMessage({}, function(response) { speed: 1.0, // default 1x speedStep: 0.1, // default 0.1x rewindTime: 10, // default 10s + advanceTime: 10, // default 10s resetKeyCode: 82, // default: R rewindKeyCode: 65, // default: A slowerKeyCode: 83, // default: S fasterKeyCode: 68, // default: D + advanceKeyCode: 84, // default: T rememberSpeed: false // default: false } }; @@ -18,10 +20,12 @@ chrome.extension.sendMessage({}, function(response) { tc.settings.speed = Number(storage.speed); tc.settings.speedStep = Number(storage.speedStep); tc.settings.rewindTime = Number(storage.rewindTime); + tc.settings.advanceTime = Number(storage.advanceTime); tc.settings.resetKeyCode = Number(storage.resetKeyCode); tc.settings.rewindKeyCode = Number(storage.rewindKeyCode); tc.settings.slowerKeyCode = Number(storage.slowerKeyCode); tc.settings.fasterKeyCode = Number(storage.fasterKeyCode); + tc.settings.advanceKeyCode = Number(storage.advanceKeyCode); tc.settings.rememberSpeed = Boolean(storage.rememberSpeed); readyStateCheckInterval = setInterval(initializeVideoSpeed, 10); @@ -73,17 +77,20 @@ chrome.extension.sendMessage({}, function(response) { var fasterButton = document.createElement('button'); var slowerButton = document.createElement('button'); var rewindButton = document.createElement('button'); + var advanceButton = document.createElement('button'); var hideButton = document.createElement('button'); rewindButton.innerHTML = '«'; fasterButton.textContent = '+'; slowerButton.textContent = '-'; + advanceButton.innerHTML = '»'; hideButton.textContent = 'x'; hideButton.className = 'tc-hideButton'; controls.appendChild(rewindButton); controls.appendChild(slowerButton); controls.appendChild(fasterButton); + controls.appendChild(advanceButton); controls.appendChild(hideButton); container.appendChild(speedIndicator); @@ -106,6 +113,8 @@ chrome.extension.sendMessage({}, function(response) { runAction('faster') } else if (e.target === rewindButton) { runAction('rewind') + } else if (e.target === advanceButton) { + runAction('advance') } else if (e.target === hideButton) { container.nextSibling.classList.add('vc-cancelled') container.remove(); @@ -137,9 +146,11 @@ chrome.extension.sendMessage({}, function(response) { videoTags.forEach = Array.prototype.forEach; videoTags.forEach(function(v) { - if (!v.paused && !v.classList.contains('vc-cancelled')) { + if (!v.classList.contains('vc-cancelled')) { if (action === 'rewind') { v.currentTime -= tc.settings.rewindTime; + } else if (action === 'advance') { + v.currentTime += tc.settings.advanceTime; } else if (action === 'faster') { // Maxium playback speed in Chrome is set to 16: // https://code.google.com/p/chromium/codesearch#chromium/src/media/blink/webmediaplayer_impl.cc&l=64 @@ -168,6 +179,8 @@ chrome.extension.sendMessage({}, function(response) { if (keyCode == tc.settings.rewindKeyCode) { runAction('rewind') + } else if (keyCode == tc.settings.advanceKeyCode) { + runAction('advance') } else if (keyCode == tc.settings.fasterKeyCode) { runAction('faster') } else if (keyCode == tc.settings.slowerKeyCode) { diff --git a/manifest.json b/manifest.json index c5878c4..5a205c4 100755 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "short_name": "videospeed", "version": "0.2.5", "manifest_version": 2, - "description": "Speed up, slow down, and rewind any HTML5 video with quick shortcuts.", + "description": "Speed up, slow down, advance and rewind any HTML5 video with quick shortcuts.", "homepage_url": "https://github.com/igrigorik/videospeed", "icons": { "16": "icons/icon16.png", diff --git a/options.html b/options.html index 21e327f..5ea61ba 100644 --- a/options.html +++ b/options.html @@ -16,6 +16,10 @@ +