如何知道 MediaRecorder 何时完成将数据写入文件

2024-02-23

在进行实际录制之前,我们使用 MediaRecorder 使用 setOutputFile() 将视频录制到外部存储上的文件中。

一切正常,但主要问题是,录制完成后,我们希望开始在 VideoView 中播放录制的视频。

如何知道文件何时可以读取和播放?


The FileObserver课程完全适合您的需求。这是文档 http://developer.android.com/reference/android/os/FileObserver.html。它很容易使用。当观察到的文件在写入后关闭时,onEvent回调被调用CLOSE_WRITE作为参数。

MyFileObserver fb = new MyFileObserver(mediaFile_path, FileObserver.CLOSE_WRITE);
fb.startWatching();

class MyFileObserver extends FileObserver {

    public MyFileObserver (String path, int mask) {
        super(path, mask);
    }

    public void onEvent(int event, String path) {
        // start playing
    }
}

别忘了打电话stopWatching().

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何知道 MediaRecorder 何时完成将数据写入文件 的相关文章

随机推荐

  • 使用 jQuery 从输入值中删除给定的字符串

    我有一个包含三个整数值的隐藏字段 例如
  • 在 Microsoft Edge 中打开跨源窗口时忽略 window.open() 参数

    在 Microsoft Edge 中 以下代码片段将忽略传递给的选项window open when url与当前域的来源不同 但它在 Chrome 和 Firefox 中运行良好 并且当域是同源时 const popupWindow wi
  • libavformat/ffmpeg 与 x264 和 RTP 同步时出现问题

    我一直在开发一些实时直播的流媒体软件 来自各种摄像机和网络流使用 H 264 为了实现这一点 我直接使用 x264 编码器 使用 零延迟 预设 并提供 NAL 因为它们可用于 libavformat 打包到 RTP 最终是 RTSP 中 理
  • Epson打印机连接失败状态ERR_CONN

    我有一台 Epson 打印机 我使用 SDK 提供的 epos2 printer 示例项目 代码与我的应用程序集成 我复制了相同的代码 但它似乎永远不起作用 但是 当我将示例项目连接到打印机时 效果相同 private boolean ru
  • 安卓谷歌登录不可用?

    所以我的项目遇到的一个问题是通过谷歌登录不能一致工作 即 它适用于我的朋友 而不是我的计算机上的我 尽管它昨天在擦除我的手机之前对我有用 手机已损坏 我们的登录代码是google登录的标准 问题是我认为结果一直返回false 代码 prot
  • 为什么我们不能在 firebase 身份验证中使用 getUid() 向您的后端服务器进行身份验证

    在此代码片段 firebase 文档 中 他们提到不要使用 user getUid 向后端服务器进行身份验证 请改用 FirebaseUser getToken FirebaseUser user FirebaseAuth getInsta
  • 如何使用 CakePHP 检查模型是否存在?

    我在通用函数中动态加载模型 我注意到有时我想跳过加载模型 因为它会引发 404 错误 如何检查模型是否存在 就像是 if this gt modelexists type this gt loadModel type else return
  • 如何使用 PHP 的curl 函数从上次重定向中获取标头?

    如果我执行设置为遵循重定向并返回标头的 cURL 请求 它将返回所有重定向的标头 我只想要返回最后一个标头 以及内容正文 我该如何实现这一目标 这是另一种方法 url http google com opts array CURLOPT R
  • 如何使用带有文字点的 Perl 哈希键?

    我有一个 Perl 中的哈希值 它已从一些遗留代码转储到其中 键名现在已从简单的 reqHdrs 更改为 reqHdrs bla rec gt reqHdrs bla 我的问题是现在我似乎无法从哈希访问该字段有什么想法吗 以下是我的错误 D
  • 在 R 中的 ggplot geom_bar 中强制条形图从低于 0 的值开始

    我想使用 ggplot 绘制条形图 我使用scale y log10 来重新缩放y 轴 当使用下面的脚本时 我得到两个方向 向上和向下 的条形图 并且条形图从 1 开始 我明白这是因为 log10 1 0 ggplot data dat a
  • 开发自定义锁屏[重复]

    这个问题在这里已经有答案了 我想开发看起来像 iPhone 锁屏的自定义锁屏应用程序 有这方面的教程或示例吗 如果没有 我应该从哪里开始 Android SDK 不支持创建 自定义锁屏 aap 您只能在自定义固件中修改锁屏行为 UPDATE
  • .so、.la 和 .a 库文件有什么区别?

    我知道一个 so文件是一种动态库 许多线程可以共享此类库 因此不需要在内存中拥有多个副本 但有什么区别 a and la 这些都是静态库吗 如果动态库比静态库有很大优势 为什么仍然有很多静态库 我什么时候应该尝试将代码构建到 so or a
  • PrimeNG 表:如何开始单元格编辑?

    我有一个 PrimeNG p 表 其中包含许多列和行 其中一列使用输入作为其单元格编辑器 精简版如下
  • 构建时出现 Docker 文件非零代码 100 错误

    这是我的 Docker 文件 FROM ubuntu 16 04 MAINTAINER Alexandre Savio lt gt RUN ln snf bin bash bin sh ARG DEBIAN FRONTEND noninte
  • 当系统显示当前正在进程中使用用户时,如何删除Linux中的用户[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试删除我在 ubuntu 上创建的用户 但是 当我使用以下命令时 userdel r cafe fixer 我收到以下消息 use
  • ProgressDialog 未显示在 AsyncTask 中

    我正在创建一个 Android 应用程序 该应用程序依赖于该应用程序从数据库获取的数据 为了获取这些数据 我有以下类 此类从数据库中以 JSON 格式获取数据 对其进行翻译并返回 public class Json public Strin
  • 允许对易失性对象进行优化

    From ISO IEC 9899 201x部分5 1 2 3 程序执行段落4 在抽象机中 所有表达式都按以下指定的方式求值 语义 实际的实现不需要评估一部分 表达式 如果它可以推断出它的值没有被使用并且没有 产生所需的副作用 包括任何由以
  • cppcheck 的规则集

    cppcheck允许你创建自己的规则文件 但我不知道cppcheck的功能暴露了多少 是否有人正在开发一套可以强制执行的JSF http www stroustrup com JSF AV rules pdf or MISRA http w
  • 在任务管理器之间均匀分配 Flink 运算符

    我正在 15 台机器的裸机集群上构建 Flink 流应用程序原型 我使用带有 90 个任务槽 15x6 的纱线模式 该应用程序从单个 Kafka 主题读取数据 Kafka主题有15个分区 所以我也将源算子的并行度设置为15 但是 我发现 F
  • 如何知道 MediaRecorder 何时完成将数据写入文件

    在进行实际录制之前 我们使用 MediaRecorder 使用 setOutputFile 将视频录制到外部存储上的文件中 一切正常 但主要问题是 录制完成后 我们希望开始在 VideoView 中播放录制的视频 如何知道文件何时可以读取和