{{tools.getAudioCurrent(currentTime)}}
点击选择音频文件上传
{{tools.getAudioTotal(duration)}}
var countWidth = 300; //播放条总宽度
var slideLeft = 0; //当前位置,点击的位置
var duration = 0; //总时长
var currentTime = 0;//当前时长
var progressCurrent = 0;
var _parsetAudioTime = function (ns) {
ns = parseInt(ns);
var i = parseInt(ns / 60);
var s = ns % 60;
return _minute(i) + ":" + _minute(s);
}
var _getProgress = function () {
if (currentTime == 0 || duration == 0) return 0;
var progress = parseInt(currentTime / duration * 100);
return progress;
}
var _minute = function (ns) {
if (ns < 10) {
ns = "0" + ns;
}
return ns;
}
var changeCurrentTime = function (newValue, oldValue, ownerInstance, instance) {
var sliderNode = ownerInstance.selectComponent(".audio-play_progress-slider");
var currentNode = ownerInstance.selectComponent(".audio-play_progress-current");
var left = _getProgress();
if(left == progressCurrent) return;
progressCurrent = left;
sliderNode.setStyle({
"left": (left - 1) + "%"
})
currentNode.setStyle({
"width": left + "%"
})
}
var getAudioCurrent = function (ns) {
currentTime = ns;
return _parsetAudioTime(ns);
}
var getAudioTotal = function (ns) {
console.log("getAudioTotal", ns)
duration = ns;
return _parsetAudioTime(ns);
}
var touchStart = function (event, ins) {
ins.callMethod("startDrag");
var totalNode = ins.selectComponent(".audio-play_progress-total");
var sliderNode = ins.selectComponent(".audio-play_progress-slider");
var currentNode = ins.selectComponent(".audio-play_progress-current");
var totalClientRect = totalNode.getBoundingClientRect();
var slideClientRect = sliderNode.getBoundingClientRect();
countWidth = totalClientRect.width;
// 获取事件触发点的坐标数据
var touch = event.touches[0] || event.changedTouches[0]
//存储坐标数据,后期使用
var moveE = ins.getState();
moveE.startX = touch.pageX;
moveE.startY = touch.pageY;
slideLeft = parseInt(touch.pageX - totalClientRect.left);
console.log(touch.pageX-totalClientRect.left)
var left = parseInt((touch.pageX-totalClientRect.left) / countWidth * 100);
sliderNode.setStyle({
"left": (left - 1) + "%"
})
currentNode.setStyle({
"width": left + "%"
})
console.log('inss', ins.setStyle)
}
var touchmove = function (event, ins) {
//组件实例
var sliderNode = ins.selectComponent(".audio-play_progress-slider");
var currentNode = ins.selectComponent(".audio-play_progress-current");
console.log(JSON.stringify(sliderNode.getBoundingClientRect()))
// 获取拖动点的坐标数据
var touch = event.touches[0] || event.changedTouches[0]
//拿出拖动开始时存储的数据
var moveE = ins.getState();
//计算拖动点与拖动开始时的触发点之间的横坐标之差
var gap = touch.pageX - moveE.startX + slideLeft;
var left = parseInt(gap / countWidth * 100);
left = left >= 100 ? 100 : left;
left = left <= 0 ? 0 : left;
sliderNode.setStyle({
"left": (left - 1) + "%"
})
currentNode.setStyle({
"width": left + "%"
})
}
var touchEnd = function (event, ins) {
var currentNode = ins.selectComponent(".audio-play_progress-current");
var width = currentNode.getBoundingClientRect().width;
var limit = (width / countWidth) * duration;
console.log("limit", limit, width)
ins.callMethod("endDrag", limit);
}
module.exports = {
getAudioTotal: getAudioTotal,
changeCurrentTime: changeCurrentTime,
getAudioCurrent: getAudioCurrent,
touchStart: touchStart,
touchmove: touchmove,
touchEnd: touchEnd
}