在 Parse (Android) 中保存和检索照片和视频

2023-11-24

我正在看解析Android文档并发现要保存照片和视频,您必须初始化new ParseFile带有名称和数据的 byte[] 并保存它。

将图像 Uri 和视频 Uri 转换为字节数组的最简单方法是什么?

以下是我尝试的解决方案:

mPhoto = new ParseFile("img", convertImageToBytes(Uri.parse(mPhotoUri)));
mVideo = new ParseFile ("vid", convertVideoToBytes(Uri.parse(mVideoUri)));

private byte[] convertImageToBytes(Uri uri){
    byte[] data = null;
    try {
        ContentResolver cr = getBaseContext().getContentResolver();
        InputStream inputStream = cr.openInputStream(uri);
        Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
        data = baos.toByteArray();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
    return data;
}

private byte[] convertVideoToBytes(Uri uri){
    byte[] videoBytes = null;
    try {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        FileInputStream fis = new FileInputStream(new File(getRealPathFromURI(this, uri)));

        byte[] buf = new byte[1024];
        int n;
        while (-1 != (n = fis.read(buf)))
            baos.write(buf, 0, n);

        videoBytes = baos.toByteArray();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return videoBytes;
}

private String getRealPathFromURI(Context context, Uri contentUri) {
    Cursor cursor = null;
    try {
        String[] proj = { MediaStore.Video.Media.DATA };
        cursor = context.getContentResolver().query(contentUri, proj, null,
                null, null);
        int column_index = cursor
                .getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
        cursor.moveToFirst();
        return cursor.getString(column_index);
    } finally {
        if (cursor != null) {
            cursor.close();
        }
    }
}    

The convertImageToBytes and convertVideoToBytes方法目前有效,但我只是想知道我的做法是否正确。


从 Uri 获取 byte[] 我做了以下事情,

 ByteArrayOutputStream baos = new ByteArrayOutputStream();
FileInputStream fis = new FileInputStream(new File(yourUri));

byte[] buf = new byte[1024];
int n;
while (-1 != (n = fis.read(buf)))
    baos.write(buf, 0, n);

byte[] videoBytes = baos.toByteArray(); //this is the video in bytes.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Parse (Android) 中保存和检索照片和视频 的相关文章

  • 由于现有相机用户,相机“0”的手电筒不可用

    我想创建一个应用程序 它有一个用于录制视频的按钮和另一个单独的切换按钮 用于在录制视频期间打开闪光灯 我已经使用camera2 API为最近的androids构建了相机应用程序 可以通过图像按钮访问 我将火炬模式设置为切换按钮 但这根本不起
  • 不区分大小写的 array_unique

    我正在尝试编写几行代码来创建一个不区分大小写的数组唯一类型函数 这是我到目前为止所拥有的 foreach topics as value lvalue strtolower value uvalue strtolower value if
  • 如何将一个数组中的所有项目复制到另一个数组中?

    如何将数组的每个元素 其中元素是对象 复制到另一个数组中 以便它们完全独立 我不想更改一个数组中的元素来影响另一个数组 这里的关键是 数组中的条目是对象 并且 您不希望对一个数组中的对象的修改显示在另一个数组中 这意味着我们不仅需要将对象复
  • 如何检查 Android 设备是否在线

    我的服务器不断检查我的 Android 应用程序是否在线 请问我可以在我的android应用程序上执行哪些操作 创建一个名为 isNetworkAvailable 的帮助器方法 该方法将根据网络是否可用返回 true 或 false 它看起
  • Android:将图像裁剪为特定尺寸

    我的目的是让用户从图库中选择一张图像 然后进行裁剪活动 但是 我需要将定义裁剪蒙版的矩形锁定到某个尺寸 然后用户只需重新定位它即可显示图像的一部分 关于如何做到这一点有什么想法吗 Thanks T Intent intent new Int
  • 静态数组VS。 C++11 中的动态数组

    我知道这是一个非常古老的争论 全世界已经讨论过很多次了 但我目前很难决定在特定情况下应该使用静态数组和动态数组之间的哪种方法而不是另一种方法 实际上 我不会使用 C 11 我会使用静态数组 但我现在很困惑 因为两者可能有相同的好处 第一个解
  • 获取Android库中的上下文

    我正在编写一个 Android 应用程序 它的一些功能封装在内部库中 但是 要使此功能发挥作用 库需要一个应用程序上下文的实例 为图书馆提供这种上下文的最佳方式是什么 我看到了一些选择 但没有一个有吸引力 Have my library c
  • 使用全局变量从内部函数获取空字符串

    请帮助我解决一些小问题 我确信你能做到 D 我试图在 firestore 文档 user cases information 上设置一个字段 其中包含一个字段 case number 首先我声明这个全局变量 private String c
  • NDK8d 未找到 std::string 操作(即 stol、stoi)

    我尝试使用 ndk r8d 和 c 11 支持来建立我的第一个 android 项目 一些 c 11 机制工作正常 即 lambda 表达式 但是当我尝试时 使用新的字符串操作之一 编译失败 错误 stol 不是 std 的成员 这是我的
  • 改造将多个图像上传到单个密钥

    我正在使用 Retrofit 将图像上传到我的服务器 这里我需要为一个密钥上传多个图像 我已经尝试使用 Postman 网络客户端 它运行良好 这是一个屏幕截图 以下是请求的键值对 调查图像 文件1 文件2 文件3 属性图像 文件DRA j
  • 返回到上一个活动的最后状态

    我有两个活动 A 和 B 当应用程序启动时 活动 A 会被加载 我会从数据库将数据加载到其中 我可以毫无问题地转到活动 B 但是当我返回活动 A 时 会查看旧数据一段时间 然后重新加载活动 知道如何解决这个问题吗 在从数据库加载数据之前清除
  • 可以用 Django 制作移动应用程序吗?

    我想知道我是否可以在我的网站上使用 Django 代码 并以某种方式在移动应用程序 Flutter 等框架中使用它 那么是否可以使用我现在拥有的 Django 后端并在移动应用程序中使用它 所以就像models views etc 是的 有
  • 如何按元素添加两个 Rust 数组?

    这绝对是一个初学者问题 但我搜索了半个小时后找不到任何有用的东西 我有 Rust 1 7 0 和这段代码 type coord i64 3 add two coordinates vectors pointwise that is if z
  • Android 上的 SQLite JDBC 驱动程序

    我正在尝试使用xerial sqlite jdbc在 Android 中管理我的数据库没有成功 我得到了java lang NoClassDefFoundError org sqlite SQLiteConnection异常 我已经导入了这
  • 作为 ViewPager 的一部分更新 ListFragment 中的数据

    我在 Android 中使用 v4 兼容性 ViewPager 我的 FragmentActivity 有一堆数据 这些数据将以不同的方式显示在我的 ViewPager 的不同页面上 到目前为止 我只有同一个 ListFragment 的
  • PHP 使用主键和辅助键对多维数组进行排序[重复]

    这个问题在这里已经有答案了 如何按主键和辅助键对多维数组进行排序 例如 假设有以下数组 result array result 0 prio 1 result 0 date 2010 02 28 result 0 post February
  • Android - 在图像/缩略图上覆盖播放按钮的最佳方式

    我有一个 Android 应用程序 可以播放音频 视频并显示图片 对于视频 我想在预览图像顶部以及列表视图中叠加一个播放按钮 现在我的做法是使用 xml 中的 ImageView 然后可绘制对象是一个图层图层列表 我以编程方式定义它 因为其
  • 线性布局高度和重量

    我有以下内容
  • 为什么 JavaScript 中是 [1,2] + [3,4] = "1,23,4" ?

    我想将一个数组的元素添加到另一个数组中 所以我尝试了以下方法 1 2 3 4 它的回应是 1 23 4 到底是怎么回事 The 操作员没有为数组定义 发生的事情是 JavaScript将数组转换为字符串并将它们连接起来 Update 由于这
  • 使用部分字符串匹配进行 Firebase 查询[重复]

    这个问题在这里已经有答案了 假设我有一个简单的 firebase 实时数据库结构 其中关键是username其值为userid 现在我想搜索userid by username 如果用户名匹配 这很容易 但如何获得部分匹配的答案 更清楚地说

随机推荐

  • 寻找图像中的空白区域

    这个问题在某种程度上与语言无关 但我选择的工具恰好是 numpy 数组 我正在做的是通过 PIL 获取两个图像的差异 img ImageChops difference img1 img2 我想找到包含从一张图片到另一张图片的变化的矩形区域
  • 对于由苹果的 Health App - HealthKit - iOS 创建的健康数据,HKMetadataKeyTimeZone 始终为零

    我正在使用 HealthKit 读取用户的健康数据 尝试从健康数据中获取时区信息 以确定健康活动发生在哪个确切时区 为此 我依赖 HealthKit 元数据中的 HKMetadataKeyTimeZone 键 但即使对于苹果健康应用程序自动
  • 如何通过 at() 函数访问二维向量的索引?

    我将在成员函数中初始化一个 2D 向量 其中输入参数计划被输入到函数参数内的确定索引中 此外 出于安全考虑 我不会使用 运算符来进行成员访问 如何使用 at 函数来访问 2D 向量的索引 如下所示 vector
  • 如何正确显示孟加拉语文本

    我有一个JTextArea我需要在其中显示孟加拉语文本 例如 但我只能看到长方形的盒子 如何正确显示孟加拉语字符 首先采用孟加拉 unicode 支持的字体 例如 Font banglaFont new Font Arial Unicode
  • os.sched_getaffinity(0) 与 os.cpu_count()

    所以 我知道标题中两种方法的区别 但不知道实际含义 据我了解 如果您使用的 NUM WORKERS 数量多于实际可用的核心数量 您将面临性能大幅下降 因为您的操作系统不断地来回切换 试图保持并行 不知道这有多真实 但我在某处从比我聪明的人那
  • PowerShell ScriptBlock 到底是什么

    PowerShell ScriptBlock 不是词汇闭合因为它不会关闭其声明环境中引用的变量 相反 它似乎利用了动态作用域和自由变量 这些变量在运行时绑定在 lambda 表达式中 function Get Block b PowerSh
  • MarshmallowrelativeLayout 与alignBaseline 的行为很奇怪

    在 Android 6 0 Marshmallow 上 EditText 相对于具有基线和layout alignBaseline 属性的RelativeLayout 中的ImageView 的定位不再起作用 甚至可以在 Android s
  • 使用“as”进行 TypeScript 转换[重复]

    这个问题在这里已经有答案了 我试图塑造一个类型any为布尔值 所以我简单地这样做了 let a
  • Google 日历 API、RRULE 和 EXDATE

    我正在尝试使用 API 将一些事件导出到 Google Calendar 特别是包装它的 python 库 这些事件会重复发生 这是使用 RRULE 字符串定义到 Google 日历的 并且我尝试使用 EXDATE 字符串排除某些日期 这是
  • POST 内容长度超出限制

    当用户上传文件时 我在 php 的 error log 中收到类似的错误 PHP 警告 POST 内容长度 11933650 字节超出了第 0 行未知中 8388608 字节的限制 在我的 php ini 在 public html 中创建
  • 如何用C#创建CSV Excel文件? [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我正在寻找用于创建 CSV Excel 文件的课程 预期功能 使用极其简单 转义逗号和引号 以便 excel 可以很好地处理它们 以时区证明格式导出日期和日期时间 你知道有什么类可以做
  • 在构建后事件期间确定程序集版本

    假设我想创建一个随每个版本一起提供的静态文本文件 我希望使用发行版的版本号更新该文件 如中指定的 AssemblyInfo cs 但我不想手动执行此操作 我希望我可以使用构建后事件并将版本号提供给批处理文件 如下所示 call foo ba
  • 如何将角度日期转换为另一个时区

    我在用Date 获取本地时区的当前时间 我已将其格式化如下 this today new Date from new DatePipe en Us transform this today dd MM yyyy hh mm ss 现在我想转
  • 添加自定义 LinearLayout 时 Android 布局预览器抛出错误

    我定义了一个自定义 ViewGroup 来扩展 LinearLayout 的功能 public class TestLayout extends LinearLayout public TestLayout Context context
  • iOS 10 中的 sqlite3_prepare_v2 exc_bad_access

    我在我的 iOS 项目中使用 sqlite 作为数据库 在 iOS 9 中 一切都运行良好 现在我已经更新了新的 Xcode 但应用程序在 sqlite3 prepare v2 处多次崩溃 另外 我不会超时关闭数据库 并且只打开一次 我在下
  • 如何在正则表达式中使用变量?

    我想创建一个String replaceAll JavaScript 中的方法 我认为使用正则表达式是最简洁的方法 但是 我不知道如何将变量传递给正则表达式 我已经可以做到这一点 这将替换所有实例 B with A ABABAB repla
  • 通过索引查询LIKE%MYSQL搜索速度慢

    我的表有 100 000 000 行 非常大 表的结构 id int INDEX not primary not unique just index lang index varchar 5 INDEX name varchar 255 I
  • 如何在 Cocos2D 3.x 中为 CCSprite 制作动画?

    你知道如何制作动画吗CCSprite在新的Cocos2D v3 x 很多类都改变了 旧的方法似乎不起作用 NSMutableArray animFrames NSMutableArray array for int i 1 i lt 3 i
  • mmap 比 getline 慢?

    我面临着逐行读取 写入文件 在演出中 的挑战 阅读许多论坛条目和站点 包括一堆 SO mmap 被建议作为读取 写入文件的最快选项 但是 当我使用 readline 和 mmap 技术实现代码时 mmap 是两者中较慢的一个 对于阅读和写作
  • 在 Parse (Android) 中保存和检索照片和视频

    我正在看解析Android文档并发现要保存照片和视频 您必须初始化new ParseFile带有名称和数据的 byte 并保存它 将图像 Uri 和视频 Uri 转换为字节数组的最简单方法是什么 以下是我尝试的解决方案 mPhoto new