playbackRate() not implemented for HTMLYouTubeVideoElement
Opened this issue · 2 comments
The YouTube player API offers the following hooks for adjusting the playback rate. If no one beats me to this, my plan will be to circle back in ~48 hours and create a pull request that adds this the wrapper.
https://developers.google.com/youtube/js_api_reference
player.getPlaybackRate();
player.setPlaybackRate(suggestedRate);
player.getAvailablePlaybackRates();
I tried this ages ago, and found that in most cases getAvailablePlaybackRates
would only return an array of 1. :(
I'm not sure if you guys ever got this working or not, but I was just experimenting with this too. In popcorn-complete.js 1.5.6, HTMLYouTubeVideoElement, line 6479: Object.defineProperties, I just added a getter and setter for playbackRate and getAvailablePlaybackRates:
playbackRate: {
get: function() {
return player.getPlaybackRate();
},
set: function( aValue ) {
player.setPlaybackRate(aValue);
self.dispatchEvent( "ratechange" );
}
},
availablePlaybackRates: {
get: function() {
return player.getAvailablePlaybackRates();
}
},
The videos I have been looking at tend to have available playback rates of [0.25, 0.5, 1, 1.25, 1.5, 2]. I know YouTube doesn't provide this for all videos though, so you should check the list before setting a new playbackRate.
You can then change the playbackRate using e.g:
var rate = popcornElement.media.availablePlaybackRates[0];
popcornElement.media.playbackRate = rate;
Does that work for you too?