如何使用 AudioContext 进行搜索
How to seek with AudioContext
我想创建点击时播放 next/prev 歌曲的按钮,但它们应该在长按时寻找音乐。
我确实换了歌,但是找不到搜索方法。还有怎么让它从头开始播放?
有没有办法确定自歌曲开始以来已经过了多少时间?我发现缓冲区有持续时间,但没有实际播放时间的歌曲。
初始化时:
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)
使用tapholdAPI实现长按事件
$(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
猜猜,你应该使用 AudioBufferNode
(它具有搜索功能)- https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/start
另外,这个包装器可能会有用 - https://github.com/eipark/buffaudio
我想创建点击时播放 next/prev 歌曲的按钮,但它们应该在长按时寻找音乐。
我确实换了歌,但是找不到搜索方法。还有怎么让它从头开始播放?
有没有办法确定自歌曲开始以来已经过了多少时间?我发现缓冲区有持续时间,但没有实际播放时间的歌曲。
初始化时:
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)
使用tapholdAPI实现长按事件
$(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
猜猜,你应该使用 AudioBufferNode
(它具有搜索功能)- https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/start
另外,这个包装器可能会有用 - https://github.com/eipark/buffaudio