在请求视频时长时得到NaN



谁能帮我理解为什么setAttendancePromptTimeLimit()里面的console.log(this.getPlayerDuration())返回NaN?

// video-player.js    
const videoP = document.querySelector('#in-course-player')
class videoPlyer {
constructor(videoElem){
this.vidPlayer = videoElem
}
play =  function(cb){
arguments.length ? cb : console.log('play')
}

addListener = (elem, event, cb) => {
elem.addEventListener(event, cb)
}
getPlayerCurrentTime = () => this.vidPlayer.currentTime
getPlayerDuration = () => this.vidPlayer.duration
showVideoDuration = function(cb){
arguments.length ? cb : this.addListener(this.vidPlayer, 'loadedmetadata', () => 
console.log(this.getPlayerDuration()))
}

setAttendancePromptTimeLimit = cb => {
// returns NAN
console.log(this.getPlayerDuration())
}
init = () => {
//returns 16.1
this.showVideoDuration()  
//returns NAN 
this.setAttendancePromptTimeLimit()    
}
}
const coursePlayer = new videoPlyer(videoP)
coursePlayer.init()

[…]如果没有介质数据,则返回"NaN"。[…] https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/duration

最新更新