123456789101112131415161718192021222324252627282930313233343536373839 |
- import {reactive} from 'vue'
- import {saveWatchRecord} from "@/api/webApi/webVideo";
- export const useVideoRecord = function () {
- const state = reactive({
- committed: false,
- duration: 0,
- percent: 0
- })
- const reset = function () {
- state.committed = false
- state.duration = 0
- state.percent = 0
- }
- const syncProgress = function ({currentTime, duration}) {
- state.duration = duration
- state.percent = 0 // for safe division
- if (duration > 0) state.percent = currentTime * 100 / duration
- }
- const commit = async function ({src, aliIdType}) {
- if (!src) return // 无效数据
- if (state.committed) return // 已提交
- if (!state.percent) return // 无效数据
- if (state.percent < 2) return // <2%播放太短,也不记,防止过度触发提交
- await saveWatchRecord(src, state.duration, state.percent, aliIdType)
- state.committed = true
- console.log('saveWatchRecord committed')
- }
- return {
- state,
- reset,
- syncProgress,
- commit
- }
- }
|