Я использую экспо-камеру для записи видео в своем нативном приложении React. В разработке все работает отлично, но когда я создаю APK-файл, камера не записывает видео.
Я использовал ловушку useRef - это мой код, который срабатывает при нажатии кнопки начала записи и запускает функцию startRecord(), которая использует
const RecordedVideo = await cameraRef.current.recordAsync(); .
Я думаю, что, возможно, cameraRef.current.recordAsync() не работает в производстве.
Любые предложения или решения будут очень полезны.
Спасибо!
**Video Recording Component**
import React, { useState, useEffect, useRef } from "react";
import { View, Text, TouchableOpacity, StyleSheet, Alert } from "react-native";
// packages
import { Camera } from "expo-camera";
import * as FileSystem from "expo-file-system";
import {
widthPercentageToDP as wp,
heightPercentageToDP as hp,
} from "react-native-responsive-screen";
// Functional Component
const Recordvideo = (props) => {
// Ref
const cameraRef = useRef(null);
// States
const [video, setVideo] = useState(null);
const [recording, setRecording] = useState(false);
const [hasPermission, setHasPermission] = useState(null);
// getting camera permission
useEffect(() => {
getPermission();
}, [getPermission]);
const getPermission = async () => {
const { status } = await Camera.requestPermissionsAsync();
if (status === "granted") {
setHasPermission(true);
}
};
// start/stop video recording
const toogleRecord = () => {
if (recording) {
stopRecord();
} else {
startRecord();
}
};
// start recording
const startRecord = async () => {
if (cameraRef.current) {
setRecording(true);
const recordedVideo = await cameraRef.current.recordAsync();
setVideo(recordedVideo);
}
};
// stop recording
const stopRecord = async () => {
setRecording(false);
cameraRef.current.stopRecording();
};
// saving recorded video
const saveVideo = async () => {
let fileInfo = await FileSystem.getInfoAsync(video.uri);
if (fileInfo.size
Подробнее здесь: https://stackoverflow.com/questions/654 ... n-apk-file
Видеозапись (экспо) не работает в производственном/apk-файле ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1719514062
Anonymous
Я использую [b]экспо-камеру[/b] для [b]записи видео[/b] в своем нативном приложении React. В [b]разработке[/b] все работает отлично, но когда я создаю [b]APK-файл[/b], камера не записывает видео.
Я использовал ловушку useRef - это мой код, который срабатывает при нажатии кнопки начала записи и запускает функцию [b]startRecord()[/b], которая использует
[b]const RecordedVideo = await cameraRef.current.recordAsync(); [/b].
Я думаю, что, возможно, [b]cameraRef.current.recordAsync()[/b] не работает в производстве.
Любые предложения или решения будут очень полезны.
[b]Спасибо![/b]
**Video Recording Component**
import React, { useState, useEffect, useRef } from "react";
import { View, Text, TouchableOpacity, StyleSheet, Alert } from "react-native";
// packages
import { Camera } from "expo-camera";
import * as FileSystem from "expo-file-system";
import {
widthPercentageToDP as wp,
heightPercentageToDP as hp,
} from "react-native-responsive-screen";
// Functional Component
const Recordvideo = (props) => {
// Ref
const cameraRef = useRef(null);
// States
const [video, setVideo] = useState(null);
const [recording, setRecording] = useState(false);
const [hasPermission, setHasPermission] = useState(null);
// getting camera permission
useEffect(() => {
getPermission();
}, [getPermission]);
const getPermission = async () => {
const { status } = await Camera.requestPermissionsAsync();
if (status === "granted") {
setHasPermission(true);
}
};
// start/stop video recording
const toogleRecord = () => {
if (recording) {
stopRecord();
} else {
startRecord();
}
};
// start recording
const startRecord = async () => {
if (cameraRef.current) {
setRecording(true);
const recordedVideo = await cameraRef.current.recordAsync();
setVideo(recordedVideo);
}
};
// stop recording
const stopRecord = async () => {
setRecording(false);
cameraRef.current.stopRecording();
};
// saving recorded video
const saveVideo = async () => {
let fileInfo = await FileSystem.getInfoAsync(video.uri);
if (fileInfo.size
Подробнее здесь: [url]https://stackoverflow.com/questions/65436550/video-recording-expo-is-not-working-on-production-apk-file[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия