首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用MediaRecorder录制的视频只播放三星设备中的第一帧

用MediaRecorder录制的视频只播放三星设备中的第一帧
EN

Stack Overflow用户
提问于 2020-06-03 13:49:35
回答 1查看 433关注 0票数 0

我有来自不同的三星设备(J6,S6,S7,.)的几个用户的报告,在那里录制的视频不播放,所以似乎被破坏了。回放在第一帧时似乎被卡住/冻结,而音频则正确播放。

这个问题发生在使用Android的MediaRecorder API录制的视频中。

我能收集到的信息是当一个设备进入深度睡眠时,所以关闭屏幕并在几分钟内不使用该设备。当设备再次活动时,由于一些仍然未知的原因,,新记录在第一帧和第二帧之间产生过大的增量持续时间,给人以被冻结或只有1帧的回放的印象。

我在互联网上发现,这个问题在不同的网站上都有报道,但没有适当的解决方案。有人找到解决办法了吗?三星似乎不承认这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-08 17:49:56

进一步的调查表明,这一问题可能是由三星的一些型号的系统缺陷引起的。

检查一些用户发送的损坏视频,我可以确认,在所有受影响的设备中,第一个帧有一个夸张的大增量持续时间。

因此,对于一个不正确的增量时间,它给人的印象是视频被冻结了,当它实际上只是在屏幕上显示第一帧时,按照其定义的增量持续时间,这对于损坏的视频来说是非常长的。

为了修复这些示例,我用来自第二帧的值替换了第一帧的增量时间(只有第一帧受影响)。然后视频按预期正确播放。我使用IsoParser来完成这个任务。

但这不是一个正确的解决方案,因为它意味着必须检查每一个视频,并重新包装,如果受到影响,因为没有办法修复它的地方。该操作要求创建一个新的视频文件,用正确的增量时间复制原始文件的内容,并将原始文件替换为固定的文件。

正确的解决方案是了解MediaRecorder API如何计算增量时间,以及为什么在某些情况下受影响的设备为第一帧生成无效值。

我唯一的猜测是,如果MediaRecorder实现使用System.nanoTime时钟,那么我在一些StackOverflow帖子中看到,这个系统时钟有时会给出一个奇怪的值,当它从设备深度睡眠中回来时。如果这是真正的问题,那么唯一真正的解决办法就是三星修复它们的执行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62174512

复制
相关文章

相似问题

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