Увеличение / уменьшение скорости воспроизведения в ритмбоксе

Это зависит от того, как события присоединяются. Поскольку иллюстрация предполагает, что у нас есть следующий обработчик щелчков:

var handler = function() { alert('clicked!') };

Мы собираемся присоединить его к нашему элементу с помощью различных методов, некоторые, которые позволяют контроль и некоторых, которые не делают.

Метод A) единственный обработчик событий

element.onclick = handler;
// inspect
alert(element.onclick); // alerts "function() { alert('clicked!') }"

Метод B) несколько обработчиков событий

if(element.addEventListener) { // DOM standard
    element.addEventListener('click', handler, false)
} else if(element.attachEvent) { // IE
    element.attachEvent('onclick', handler)
}
// cannot inspect element to find handlers

Метод C): jQuery

$(element).click(handler);
  • 1.3.x

    // inspect
    var clickEvents = $(element).data("events").click;
    jQuery.each(clickEvents, function(key, value) {
        alert(value) // alerts "function() { alert('clicked!') }"
    })
    
  • 1.4.x (хранит обработчик в объекте)

    // inspect
    var clickEvents = $(element).data("events").click;
    jQuery.each(clickEvents, function(key, handlerObj) {
        alert(handlerObj.handler) // alerts "function() { alert('clicked!') }"
        // also available: handlerObj.type, handlerObj.namespace
    })
    

(См. jQuery.fn.data и jQuery.data ) глоток>

Метод D): Прототип (грязный)

$(element).observe('click', handler);
  • 1.5.x

    // inspect
    Event.observers.each(function(item) {
        if(item[0] == element) {
            alert(item[2]) // alerts "function() { alert('clicked!') }"
        }
    })
    
  • 1.6 к 1.6.0.3, включительно (стал очень трудным здесь)

    // inspect. "_eventId" is for < 1.6.0.3 while 
    // "_prototypeEventID" was introduced in 1.6.0.3
    var clickEvents = Event.cache[element._eventId || (element._prototypeEventID || [])[0]].click;
    clickEvents.each(function(wrapper){
        alert(wrapper.handler) // alerts "function() { alert('clicked!') }"
    })
    
  • 1.6.1 (немного лучше)

    // inspect
    var clickEvents = element.getStorage().get('prototype_event_registry').get('click');
    clickEvents.each(function(wrapper){
        alert(wrapper.handler) // alerts "function() { alert('clicked!') }"
    })
    

6
задан 18.05.2020, 12:31

1 ответ

RBPitch

, Что Вы описываете соответствия приятно в возможности внешнего плагина под названием RBPitch.

От описание панели запуска:

rbpitch является плагином для Rhythmbox, который позволяет Вам изменить подачу, темп и скорость в режиме реального времени при игре песни. Основные функции rbpitch включают:

*Change подача и темп Вашей музыки друг независимо от друга.

*Change "скорость", которая является pitch+tempo, масштабируемым вместе без искажения.

для установки - для RB2.96 & RB 2.97

sudo apt-add-repository ppa:smcnam/rbpitch-release
sudo apt-get update
sudo apt-get install rbpitch

В Rhythmbox, перейдите к менеджеру Plugins с помощью меню Edit-> Plugins. Удостоверьтесь флажок рядом с "Подачей и Смещением Темпа" проверяется.

RB2.98 и вне [1 116]

не был никакими изменениями кода начиная с выпуска RB2.97 - таким образом, этот плагин только применим для Ubuntu 12.04 & 12.10.

Значительные изменения в структуре меню Rhythmbox и т.д. были внесены начиная с RB 2.99 - поэтому, пока может быть возможно переключить Ваши источники назад на 12,10, чтобы заставить его работать на RB2.98/RB2.99 и RB3.0, я сомневаюсь. Вероятно, лучше для броска проблемы на система отслеживания ошибок OP для наблюдения будущих планов.

4
ответ дан 18.05.2020, 12:31
  • 1
    Зарегистрированный ошибка, поскольку Вы сказали: bugs.launchpad.net/rbpitch/+bug/1300752 – Josh Lee 18.05.2020, 12:32
  • 2
    Это - плагин C++ - таким образом будет нуждаться в компиляции. У Вас может быть некоторая удача с созданием символьной ссылки на librhythmbox-core6.so.0 (или независимо от того, что библиотеку называют) - как я сказал, I' m сомнительный - лучше для контакта с OP. Я знаю, что он все еще активен, так как он иногда открывается в rhythmbox списке рассылки. – pestophagous 18.05.2020, 12:32
  • 3
    Кажется, что я застреваю с unrolvable зависимостью, если я изменяю источник на 12,10, та из установки librhythmbox-core6, который является устаревшим. Некоторое другое возможное обходное решение? – Greg Rogers 18.05.2020, 12:32
  • 4
    rbpitch страница по launchpad.net теперь говорит это " Ubuntu 16.04 является последней поддерживаемой версией Ubuntu, который будет работать с rbpitch, и много версий позже, чем 12,04, но ранее, чем 16,04 не будут работать. " – Zathrus 18.05.2020, 12:32