Let each controller can track its own speed (#463)

Prevent source changes from changing speed in same video container.
This commit is contained in:
jacobcolbert
2019-04-27 00:32:18 -04:00
committed by Ilya Grigorik
parent 4b112362f4
commit 3c133810b9

View File

@@ -110,10 +110,11 @@
this.parent = target.parentElement || parent; this.parent = target.parentElement || parent;
this.document = target.ownerDocument; this.document = target.ownerDocument;
this.id = Math.random().toString(36).substr(2, 9); this.id = Math.random().toString(36).substr(2, 9);
this.speed = 1.0;
if (!tc.settings.rememberSpeed) { if (!tc.settings.rememberSpeed) {
if (!tc.settings.speeds[target.src]) { if (!tc.settings.speeds[target.src]) {
tc.settings.speeds[target.src] = 1.0; tc.settings.speeds[target.src] = this.speed;
} }
setKeyBindings("reset", getKeyBindings("fast")); // resetSpeed = fastSpeed setKeyBindings("reset", getKeyBindings("fast")); // resetSpeed = fastSpeed
} else { } else {
@@ -124,14 +125,14 @@
target.addEventListener('play', function(event) { target.addEventListener('play', function(event) {
if (!tc.settings.rememberSpeed) { if (!tc.settings.rememberSpeed) {
if (!tc.settings.speeds[target.src]) { if (!tc.settings.speeds[target.src]) {
tc.settings.speeds[target.src] = 1.0; tc.settings.speeds[target.src] = this.speed;
} }
setKeyBindings("reset", getKeyBindings("fast")); // resetSpeed = fastSpeed setKeyBindings("reset", getKeyBindings("fast")); // resetSpeed = fastSpeed
} else { } else {
tc.settings.speeds[target.src] = tc.settings.lastSpeed; tc.settings.speeds[target.src] = tc.settings.lastSpeed;
} }
target.playbackRate = tc.settings.speeds[target.src]; target.playbackRate = tc.settings.speeds[target.src];
}); }.bind(this));
target.addEventListener('ratechange', function(event) { target.addEventListener('ratechange', function(event) {
// Ignore ratechange events on unitialized videos. // Ignore ratechange events on unitialized videos.
@@ -141,6 +142,7 @@
this.speedIndicator.textContent = speed; this.speedIndicator.textContent = speed;
tc.settings.speeds[this.video.src] = speed; tc.settings.speeds[this.video.src] = speed;
tc.settings.lastSpeed = speed; tc.settings.lastSpeed = speed;
this.speed = speed;
chrome.storage.sync.set({'lastSpeed': speed}, function() { chrome.storage.sync.set({'lastSpeed': speed}, function() {
console.log('Speed setting saved: ' + speed); console.log('Speed setting saved: ' + speed);
}); });