首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android Mediarecorder录制的视频时长与预期时长不同

Android Mediarecorder录制的视频时长与预期时长不同
EN

Stack Overflow用户
提问于 2014-02-06 03:08:43
回答 1查看 1.4K关注 0票数 16

我用android Mediarecorder录制了一段视频。

(主要问题:我需要知道视频的确切startTimeSystem时间和endTimeSystem时间,endTime - startTime必须与实际视频的时长匹配)

代码语言:javascript
复制
MediaRecorder.start
startTime = System.currentTimeMillis()

then on stop

MediaRecorder.stop
endTime = System.currentTimeMillis()

我期待这段视频的持续时间

expected_duration = (endTime - startTime)

但是,

expected_duration总是大于视频的实际时长。

我怀疑MediaRecorder.start速度很慢,在它真正开始将帧写入视频之前,它花了一段时间。

那么,当MediaRecorder开始将第一帧写入视频时,有没有什么方法可以得到通知呢?或者有没有什么方法可以让我找出视频真正开始录制的确切系统startTime。

感谢您的阅读,并感谢您的评论、意见或建议。^^

EN

回答 1

Stack Overflow用户

发布于 2017-05-11 18:06:16

我找到的获得实际开始时间的最好方法(我仍然不确定它是否足够准确)是找到持续时间,然后像这样从endTime中减去它:

代码语言:javascript
复制
MediaRecorder.stop
endTime = System.currentTimeMillis()
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
//use one of overloaded setDataSource() functions to set your data source
retriever.setDataSource(this, Uri.fromFile(file));
String time = 
retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
    long movieDurationInMillis = Long.parseLong(time );
    long startCaptureTimeMillis = endTime - movieDurationInMillis;
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21586295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档