electricity_bill_calc_wx/childPackage/miniprogram_npm/towxml/audio-player/audio-player.js

101 lines
2.2 KiB
JavaScript

const Audio = require('./Audio');
Component({
options: {
styleIsolation: 'shared'
},
properties: {
data: {
type: Object,
value: {}
}
},
lifetimes:{
// 页面生命周期
attached:function(){
const _ts = this,
audio = _ts.audio = new Audio(this.data.data);
audio.eventPlay = function(){
_ts.setData({tips:{state:'h2w__audio--play',text:'Playing'}});
};
audio.eventCanplay = function(){
_ts.setData({tips:{state:'h2w__audio--readyed',text:'Readyed'}});
};
audio.eventTimeUpdate = function(duration,currentTime){
_ts.setData({time:{currentTime:currentTime,duration:duration,schedule:Math.round(_ts.audio.currentTime) / Math.round(_ts.audio.duration) * 100 + '%'}});
};
audio.eventPause = function(){
_ts.setData({tips:{state:'h2w__audio--pause',text:'Pause'}});
};
audio.eventStop = function(){
_ts.setData({tips:{state:'h2w__audio--end',text:'End'}});
};
// // 更新播放状态
// _ts.audio.onTimeUpdate = function(duration,currentTime){
// _ts.setData({
// playerData:{
// state:'h2w__audio--play',
// tips:'Playing',
// currentTime:currentTime,
// duration:duration,
// schedule:_ts.audio.currentTime / _ts.audio.duration * 100 + '%'
// }
// });
// };
// _ts.audio.onPause = function(){
// _ts.setData({playerData:{state:'h2w__audio--pause',tips:'Pause'}});
// };
// _ts.audio.onCanplay = function(){
// _ts.setData({playerData:{state:'h2w__audio--readyed',tips:'Readyed'}});
// };
// _ts.audio.onError = function(){
// _ts.setData({playerData:{state:'h2w__audio--error',tips:'Error'}});
// };
// _ts.audio.onEnded = ()=>{
// _ts.setData({playerData:{state:'h2w__audio--end',tips:'End'}});
// };
},
moved:function(){
_ts.audio.stop();
_ts.audio.destroy();
},
detached:()=>{
_ts.audio.stop();
_ts.audio.destroy();
},
},
data: {
tips:{
state:'',
text:'--'
},
time: {
currentTime:'00:00:00',
duration:'00:00:00',
schedule:'0%'
}
},
methods: {
playAndPause: function () {
const _ts = this,
audio = _ts.audio;
audio.isTouch = true;
if(audio.status === 'update' || audio.status === 'play'){
audio.pause();
}else{
audio.play();
};
}
}
})