接口调整

PCqiandao
harry 5 years ago
parent 699062840b
commit d16b735d53

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

Loading…
Cancel
Save