Video compression in composer (#4638)

Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
Co-authored-by: Hailey <me@haileyok.com>
This commit is contained in:
Samuel Newman 2024-07-06 01:50:03 +01:00 committed by GitHub
parent 56b688744e
commit 8f06ba70bb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
23 changed files with 483 additions and 33 deletions

View file

@ -0,0 +1,39 @@
/* eslint-disable @typescript-eslint/no-shadow */
import React from 'react'
import {View} from 'react-native'
import {useVideoPlayer, VideoView} from 'expo-video'
import {CompressedVideo} from '#/lib/media/video/compress'
import {ExternalEmbedRemoveBtn} from 'view/com/composer/ExternalEmbedRemoveBtn'
import {atoms as a} from '#/alf'
export function VideoPreview({
video,
clear,
}: {
video: CompressedVideo
clear: () => void
}) {
const player = useVideoPlayer(video.uri, player => {
player.loop = true
player.play()
})
return (
<View
style={[
a.w_full,
a.rounded_sm,
{aspectRatio: 16 / 9},
a.overflow_hidden,
]}>
<VideoView
player={player}
style={a.flex_1}
allowsPictureInPicture={false}
nativeControls={false}
/>
<ExternalEmbedRemoveBtn onRemove={clear} />
</View>
)
}