import { Audio, AVPlaybackStatus, ResizeMode, Video } from 'expo-av'; import { Image } from 'expo-image'; import { Stack, useLocalSearchParams, useRouter } from 'expo-router'; import React, { useEffect, useRef, useState } from 'react'; import { Dimensions, StyleSheet, Text, TouchableOpacity, View } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; import LotteryGrid from './components/LotteryGrid'; import LotteryReel from './components/LotteryReel'; import { Images } from '@/constants/images'; import services from '@/services/api'; const { width: SCREEN_WIDTH } = Dimensions.get('window'); // Sound URL from Uniapp config const SOUND_URL = 'https://cdn.acetoys.cn/kai_xin_ma_te/resource/magic/lottery.mp3'; const DEFAULT_JACKPOT_VIDEO = 'https://cdn.acetoys.cn/kai_xin_ma_te/supermart/box/lottery/jackpot.mp4'; export default function LotteryScreen() { const router = useRouter(); const params = useLocalSearchParams(); const insets = useSafeAreaInsets(); const num = Number(params.num) || 1; const isGrid = num >= 10; const tradeNo = params.tradeNo as string; const poolId = params.poolId as string; const [results, setResults] = useState([]); const [pool, setPool] = useState([]); const [loading, setLoading] = useState(true); const [sound, setSound] = useState(); const [animationFinished, setAnimationFinished] = useState(false); // Video state const [videoVisible, setVideoVisible] = useState(false); const [videoUrl, setVideoUrl] = useState(''); const videoRef = useRef