Set Youtube & Overcast PlaybackRate to 1.6 by default
当前为
// ==UserScript==
// @name Faster Media
// @namespace http://tampermonkey.net/
// @version 0.2.9.10
// @description Set Youtube & Overcast PlaybackRate to 1.6 by default
// @author Decradish
// @match *www.youtube.com/watch?v=*
// @match *overcast.fm/+*
// @match *v.youku.com/v_show/id_*
// @grant none
// @require https://code.jquery.com/jquery.min.js
// ==/UserScript==
(function() {
'use strict';
function delegate(parent, eventType, selector, fn)
{
//参数处理
if(typeof parent === 'string')
{
var parent = document.getElementById(parent);
!parent && console.log('parent not found');
}
if(typeof selector !== 'string')
{
console.log('selector is not string');
}
if(typeof fn !== 'function')
{
console.log('fn is not function');
}
function handle(e){
//获取event对象
//标准DOM方法事件处理函数第一个参数是event对象
//IE可以使用全局变量window.event
var evt = window.event ? window.event : e;
//获取触发事件的原始事件源
//标准DOM方法是用target获取当前事件源
//IE使用evt.srcElement获取事件源
var target = evt.target || evt.srcElement;
//获取当前正在处理的事件源
//标准DOM方法是用currentTarget获取当前事件源
//IE中的this指向当前处理的事件源
var currentTarget= e ? e.currentTarget : this;
if(target.id === selector || target.className.indexOf(selector) != -1){
fn.call(target);
}
}
parent[eventType]=handle;
}
var iPlaybackRate = 1.6, //rate
tmVideo = document.getElementsByTagName("video")[0],
tmAudio = document.getElementsByTagName("audio")[0],
tmMedia = false,
youkuDom = document.getElementById('module_basic_player'); //优酷
if(youkuDom){
console.log('youkuDom: ', youkuDom)
$('#module_basic_player').delegate('video', 'play', function(event) {
console.log('000000')
this.playbackRate = iPlaybackRate;
});
$('#module_basic_player').delegate('video', 'canplay', function(event) {
console.log('0000001111111')
this.playbackRate = iPlaybackRate;
});
$('#module_basic_player').delegate('video', 'ready', function(event) {
console.log('00000022222')
this.playbackRate = iPlaybackRate;
});
delegate('module_basic_player', 'onplay', 'video', function(){
console.log('111111')
this.playbackRate = iPlaybackRate;
});
delegate('module_basic_player', 'oncanplay', 'video', function(){
console.log('22222')
this.playbackRate = iPlaybackRate;
});
delegate('module_basic_player', 'onready', 'video', function(){
console.log('333')
this.playbackRate = iPlaybackRate;
});
return false;
}
console.log('``````tmVideo``````: ', tmVideo);
if(!!tmVideo){
tmMedia = tmVideo;
var youTubePlayBtn = document.getElementsByClassName('ytp-play-button')
if(youTubePlayBtn.length > 0){
document.getElementsByClassName('ytp-play-button')[0].focus()
}
}
if(!!tmAudio){
tmMedia = tmAudio;
document.onkeydown = function(e) {
var keyCode = e.keyCode || e.which || e.charCode;
if(keyCode == 32) {
tmMedia.paused ? tmMedia.play() : tmMedia.pause();
e.preventDefault();
return false;
}
}
}
if(!tmMedia){
return false;
}
tmMedia.playbackRate = iPlaybackRate;
tmMedia.onplay = function(){
tmMedia.playbackRate = iPlaybackRate;
};
tmMedia.oncanplay = function(){
tmMedia.playbackRate = iPlaybackRate;
};
})();