/*
* <<
* Davinci
* ==
* Copyright (C) 2016 - 2017 EDP
* ==
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* >>
*/
import React, { useContext } from 'react'
import { LayerContext } from '../../util'
import { VIDEO_REG, IFRAME_REG, MEDIA_SRC_REG } from './constants'
const Video: React.FC = () => {
const {
layer: { params }
} = useContext(LayerContext)
const { src, controlSetting, start, end } = params
const setting = controlSetting.reduce((acc, key) => {
let dataKey = key
if (key === 'autoplay') {
// support revealjs data-autoplay
dataKey = 'data-autoplay'
}
return {
...acc,
[dataKey]: true
}
}, {})
let srcWithParams = src
const videoRegExp = src && VIDEO_REG.test(src)
const iframeRegExp = src && IFRAME_REG.test(src)
if(src && videoRegExp){
const startParams = `#t=${start ? start : 0}`
const endParams = end ? `,${end}` : ''
srcWithParams = start ? `${srcWithParams}${startParams}` : `${srcWithParams}${endParams}`
}
if(src && iframeRegExp){
const iframeSrc = src.match(MEDIA_SRC_REG)
srcWithParams = iframeRegExp ? iframeSrc[0] + '&autoplay=true' : src
}
const mediaType = videoRegExp ? 'video' : 'iframe'
switch (mediaType) {
case 'video':
return (
)
default:
return
}
}
export default Video