【问题标题】:React Native/Expo Media Library exception when saving large assets to Gallery (Android external storage)将大型资产保存到图库(Android 外部存储)时,React Native/Expo 媒体库异常
【发布时间】:2021-10-22 07:05:29
【问题描述】:

我制作了一个应用程序,用户可以在其中拍摄多个视频并使用 FFmpeg concat 将它们连接在一起。我添加了导出视频功能,您可以在其中将连接的视频导出到 Android 设备上的图库。目前我正在使用Expo Media Library,但我遇到了大文件的问题。它不必是一个非常大的文件。前任。 4-5 分钟。以 720p 录制的 mp4 视频使 MediaLibrary.saveToLibraryAsync()MediaLibrary.createAssetAsync() 函数挂起并最终引发通用异常 Unable to save file to external storage。对于较小的文件,我没有问题。是否有其他方法可以将视频文件从应用文件夹复制到图库/外部存储?

【问题讨论】:

  • Is there another way to copy a video file from the app folder to the Gallery? 为什么不直接在媒体存储可以索引的文件夹中生成文件,以便文件在“图库”应用程序中可见?
  • @blackapps 你有指向那个的stackoverflow链接吗?这对我来说是一个很好的解决方案!我搜索了但找不到任何内容。
  • ???会有什么问题?我无法想象一个问题。如果您可以在文件夹中生成文件,那么您可以在我想说的任何文件夹中创建它。只需更改目标路径即可。
  • @blackapps Expo 允许我使用 2 条路径:缓存文件夹和应用程序文件夹。你的意思是在这两条路径里面吗?我已经在 app 文件夹中创建了一个文件夹,用于保存我的视频,但它们在图库中不可见。
  • 我不知道也不使用 react-native 或 Expo,所以我不知道。我很惊讶您将无法访问文件夹,您(或 Expo?)稍后会将您的文件复制到该文件夹​​,以直接在那里生成您的文件。但显然你不想使用 Expo 来复制。

标签: android react-native expo


【解决方案1】:

在@blackapps 的帮助下找到了一个解决方案,我不确定它是否是一个好的解决方案,但它目前对我有用。

import RNFS from 'react-native-fs';
const path = RNFS.ExternalStorageDirectoryPath + "/DCIM/video.mp4";

我正在使用 React Native File System 库,并直接将我的视频文件生成到位于 /storage/emulated/0/DCIMDCIM 文件夹。

这只适用于 FFmpeg 命令。如果我尝试使用文件系统库将视频复制到 DCIM 文件夹中,我会收到异常:Its not writable

【讨论】:

    猜你喜欢
    • 2021-06-26
    • 1970-01-01
    • 2020-08-11
    • 2022-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-17
    相关资源
    最近更新 更多