Skip to content

Phân tích chức năng

Last edited 776 days ago by Long Nguyễn.
info

Cần confirm lại

Các behavor cần có từ màn 4 - 7
các màn nào cần có design thì confirm lại khách xem có chưa?

ok

Ghi chú

Tuần đầu có thể Long cover các task ưu tiên, nên trong tuần này Mạnh sẽ nghiên cứu 1 phần trước (màn 4 - 7)
chức năng Camera & video
Nhân sự
Màn hình
Tên chức năng
mô tả chức năng theo ý hiểu
tham khảo
Tính khả thi
Thời gian thực thi
Long
Màn hình 1
image.png
Bật đèn flash trong camera
Có 1 màn hình camera
thêm 1 button để bật - tắt flash
sử dụng function của thư viện để bật flash

yarn add react-native-vision-camera
Example:
import React, { useState } from 'react';
import { Camera } from 'react-native-vision-camera';

const FlashCamera = () => {
const [isFlashOn, setFlashOn] = useState(false);

const toggleFlash = () => {
setFlashOn(!isFlashOn);
};

return (
<Camera torch={isFlashOn} style={{ flex: 1 }}>
<button onPress={toggleFlash}>Toggle Flash</button>
</Camera>
);
};

export default FlashCamera;
✅ khả thi 100%
chỉ cần xử lý trên js
có thư viện support
khoảng 8h
Long
màn hình 2
image.png
Hẹn giờ bắt đầu quay video
như trong description UI thì chỉ có phần đếm ngược → không có phần đặt giới hạn quay (cần re-confirm)
sau khi đếm ngược X giây, camera sẽ tự động quay clip

Example:
import React, { useState, useEffect } from 'react';
import { Camera } from 'react-native-vision-camera';

const CountdownCamera = () => {
const [countdown, setCountdown] = useState(0);
const cameraRef = useRef(null);

useEffect(() => {
let interval = null;
if (countdown > 0) {
interval = setInterval(() => {
setCountdown(countdown - 1);
}, 1000);
} else if (countdown === 0) {
startRecording();
}
return () => clearInterval(interval);
}, [countdown]);

const startCountdown = () => {
setCountdown(3); // Start countdown from 3
};

const startRecording = async () => {
if (cameraRef.current) {
const data = await cameraRef.current.startRecording();
console.log(data);
}
};

return (
<Camera ref={cameraRef} style={{ flex: 1 }}>
<button onPress={startCountdown}>Start Countdown</button>
{countdown > 0 && <p>Recording in {countdown}</p>}
</Camera>
);
};

export default CountdownCamera;
✅ khả thi 100%
chỉ cần xử lý trên js
có thư viện support
khoảng 6h
There are no rows in this table
View of Đánh giá chức năng
There are no rows in this table



Karaoke bottomtab
There are no rows in this table

Want to print your doc?
This is not the way.
Try clicking the ··· in the right corner or using a keyboard shortcut (
CtrlP
) instead.