Как искать с AudioContext
Я хотел бы создать кнопки, которые будут воспроизводить следующую/предыдущую песню при нажатии, но они должны искать музыку при длительном нажатии.
Мне удалось изменить песни, но я не смог найти методы поиска. Также как заставить его играть с самого начала?
И есть ли способ определить, сколько прошло с начала песни? Я обнаружил, что буфер имеет продолжительность, но не петь фактическое время воспроизведения.
В init:
context = new (window.AudioContext || window.webkitAudioContext)()
Чтобы воспроизвести песню:
var buffer = song.buffer
var source = context.createBufferSource()
source.buffer = song.buffer
source.connect(analysers.main)
source.start(0, offset || 0)
Ответы
Ответ 1
Предположим, вы должны использовать AudioBufferNode
(у него есть возможность делать поиск) - https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/start
Кроме того, эта оболочка может быть полезна - https://github.com/eipark/buffaudio
Ответ 2
Используйте API taphold, чтобы получить событие с длинным нажатием.
$(function(){
$( "your element" ).bind( "taphold", tapholdHandler );
function tapholdHandler( event ){
/*write your code here for seek forward */
}
});
Использовать таймер JQuery
var mousedowntime;
var presstime;
$("button[id$='" + buttonID + "']").mousedown(function() {
var d = new Date();
mousedowntime = d.getTime();
});
$("button[id$='" + buttonID + "']").mouseup(function() {
var d = new Date();
presstime = d.getTime() - mousedowntime;
if (presstime > 999/*You can decide the time*/) {
//Do_Action_Long_Press_Event();
}
else {
//Do_Action_Click_Event();
}
});
Играть с начала
function beginAudio(){
audio.trigger('pause');
audio.prop("currentTime",audio.prop("currentTime")-audio.prop("currentTime"));
audio.trigger('play');
}
или установите текущее время на ноль, а затем воспроизведите.
Для прямого и обратного использования используйте
audio.prop("currentTime",audio.prop("currentTime")-5);// 5 secs backward
audio.prop("currentTime",audio.prop("currentTime")+5);// 5 secs forward