Spaces:
Runtime error
Runtime error
File size: 1,710 Bytes
92189dd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* 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 from 'react';
export type VideoAspectRatio = 'wide' | 'square' | 'normal' | 'fill';
export type VideoProps = {
src: string;
aspectRatio?: VideoAspectRatio;
className?: string;
containerClassName?: string;
} & React.VideoHTMLAttributes<HTMLVideoElement>;
export default function StaticVideoPlayer({
src,
aspectRatio,
className = '',
containerClassName = '',
...props
}: VideoProps) {
let aspect =
aspectRatio === 'wide'
? `aspect-video`
: aspectRatio === 'square'
? 'aspect-square'
: 'aspect-auto';
let videoSize = '';
if (aspectRatio === 'fill') {
aspect =
'absolute object-cover right-0 bottom-0 min-w-full min-h-full h-full';
videoSize = 'w-full h-full object-cover object-center';
}
return (
<div
className={`w-full relative flex flex-col ${aspect} ${containerClassName}`}>
<video className={`m-0 ${videoSize} ${className}`} {...props}>
<source src={src} type="video/mp4" />
Sorry, your browser does not support embedded videos.
</video>
</div>
);
}
|