接口调整

PCqiandao
harry 5 years ago
parent 699062840b
commit d16b735d53

@ -20,6 +20,8 @@ export default ({ src, videoId, logWatchHistory, courseId = null }) => {
let initLog = false
let timeTick = 20 // 20s
let logCount = 1
let isLoging = false
let isSeeking = false
const log = useCallback((callback) => {
let params = {}
@ -29,7 +31,8 @@ export default ({ src, videoId, logWatchHistory, courseId = null }) => {
params['total_duration'] = sumTimePlayed //
} else {
if (courseId) {
params['course_video_id'] = videoId
params['video_id'] = parseInt(videoId, 10)
params['course_id'] = parseInt(courseId, 10)
} else {
params['video_id'] = videoId
}
@ -37,8 +40,10 @@ export default ({ src, videoId, logWatchHistory, courseId = null }) => {
params['device'] = device
}
async function getLogId() {
isLoging = true
let id = await logWatchHistory(params)
logId = id
isLoging = false
if (callback) {
callback()
}
@ -91,25 +96,42 @@ export default ({ src, videoId, logWatchHistory, courseId = null }) => {
lastUpdatedTime = 0
sumTimePlayed = 0
initLog = false
isLoging = false
lastEffectUpdatedTime = 0
isSeeking = false
})
}
function onTimeupdate() {
let newTime = el.current.currentTime
let timeDiff = newTime - lastUpdatedTime
let effectTimeDiff = newTime - lastEffectUpdatedTime
if (effectTimeDiff > 0) {
totalTimePlayed += effectTimeDiff
lastEffectUpdatedTime = newTime
if (!isSeeking) {
let newTime = el.current.currentTime
let timeDiff = newTime - lastUpdatedTime
let effectTimeDiff = newTime - lastEffectUpdatedTime
if (effectTimeDiff > 0) {
totalTimePlayed += effectTimeDiff
lastEffectUpdatedTime = newTime
}
sumTimePlayed += Math.abs(timeDiff)
lastUpdatedTime = newTime
if (!isLoging) {
if (sumTimePlayed - logCount * timeTick >= 0) {
logCount++
log()
}
}
}
sumTimePlayed += Math.abs(timeDiff)
lastUpdatedTime = newTime
if (sumTimePlayed - logCount * timeTick >= 0) {
logCount++
log()
}
}
function onSeeking() {
isSeeking = true
lastUpdatedTime = el.current.currentTime
lastEffectUpdatedTime = el.current.currentTime
}
function onSeeked() {
isSeeking = false
}
function onCanPlay() {
@ -122,12 +144,16 @@ export default ({ src, videoId, logWatchHistory, courseId = null }) => {
el.current.addEventListener('canplay', onCanPlay)
el.current.addEventListener('ended', onEnded)
el.current.addEventListener('seeking', onSeeking)
el.current.addEventListener('seeked', onSeeked)
el.current.addEventListener('timeupdate', onTimeupdate)
return () => {
el.current.removeEventListener('canplay', onCanPlay)
el.current.removeEventListener('play', onPlay)
el.current.removeEventListener('ended', onEnded)
el.current.removeEventListener('seeking', onSeeking)
el.current.removeEventListener('seeked', onSeeked)
el.current.removeEventListener('timeupdate', onTimeupdate)
}
}, [el, src])

Loading…
Cancel
Save