Ошибка: этот URL-адрес не содержит допустимого типа ресурса: file:///var/mobile/Containers/Data/Application/22FC2F8C-E052-4FF5-B451-4973C95AD74E/Library/Caches/Camera/50220C17-AB3B-4586-80D7-67A6D27D6105.mov
А также {"код": "ERR_UNSUPPORTED_ASSET_TYPE"
Вот мой код useEffect, который сохраняет видео:
Код: Выделить всё
useEffect(() => {
const saveVideo = async () => {
console.log('rURI:', recordedUri);
console.log('recordedUri type:', typeof recordedUri);
if (recordedUri) {
// Check file existence
const fileInfo = await FileSystem.getInfoAsync(recordedUri);
console.log('fileInfo:', fileInfo);
if (!fileInfo.exists) {
console.error('File does not exist:', recordedUri);
return;
}
const { status, canAskAgain } = await MediaLibrary.requestPermissionsAsync();
if (status !== 'granted' && canAskAgain) {
const fullPermission = await MediaLibrary.requestPermissionsAsync({ writeOnly: false });
console.log('Full permission status:', fullPermission.status);
}
try{
const asset = await MediaLibrary.createAssetAsync(recordedUri);
console.log('asset:', asset);
setNewAssetCounter(newAssetCounter + 1);}
catch (err) {
console.log('Error creating asset:', JSON.stringify(err, null, 2))
}
}
closeCamera();
}
saveVideo();
},
[recordedUri])
Код: Выделить всё
const startRecording = async () => {
if (cameraRef.current) {
setVideoElapsedTime(0);
const videoRecordPromise = cameraRef.current.recordAsync();
if (videoRecordPromise) {
setIsRecording(true);
timerRef.current = setInterval(() => {
setVideoElapsedTime((prevTime) => prevTime + 1);
}, 1000);
const video = await videoRecordPromise;
setRecordedUri(video.uri);
}
}
};
// Stop recording
const stopRecording = async () => {
const { status } = await MediaLibrary.requestPermissionsAsync();
console.log('status:', status);
if (status !== 'granted') {
alert('Permission to access media library is required!');
return;
}
console.log('line157');
try {
if (cameraRef.current && isRecording) {
console.log('line159');
cameraRef.current.stopRecording();
setIsRecording(false);
clearInterval(timerRef.current);
console.log('line162');
}
} catch (error) {
console.error('Error saving video:', error);
}
};
Подробнее здесь: https://stackoverflow.com/questions/792 ... ly-err-uns
Мобильная версия