feat: 收口视频访问与摄像头密钥输出

This commit is contained in:
weijuesen
2026-08-14 00:07:52 +08:00
parent 440cf803e4
commit 1a29def480
14 changed files with 494 additions and 78 deletions
+11 -7
View File
@@ -3,7 +3,7 @@ import { StyleSheet, View, FlatList, RefreshControl, Alert } from 'react-native'
import { Text, Card, Button, useTheme, ActivityIndicator, Surface, IconButton, SegmentedButtons } from 'react-native-paper';
import { SafeAreaView } from 'react-native-safe-area-context';
import { useNavigation } from '@react-navigation/native';
import { getCameras, getClips } from '../api/video';
import { getCameras, getClips, playCamera } from '../api/video';
import { resolveUrl } from '../api/client';
import { formatDateTime, formatDuration, formatFileSize } from '../utils/format';
import type { Camera, VideoClip } from '../types';
@@ -41,12 +41,16 @@ export default function VideoScreen() {
}, [loadData]);
const handlePlay = async (camera: Camera) => {
const streamUrl = resolveUrl(`/api/v1/video/cameras/${camera.id}/live/stream`);
navigation.navigate('VideoPlayer', {
cameraId: camera.id,
cameraName: camera.name,
streamUrl,
});
try {
const info = await playCamera(camera.id, 'flv');
navigation.navigate('VideoPlayer', {
cameraId: camera.id,
cameraName: camera.name,
streamUrl: resolveUrl(info.url),
});
} catch (err: any) {
Alert.alert('提示', err?.message || '获取播放地址失败');
}
};
const handlePlayClip = async (clip: VideoClip) => {