我正在建立一个应用程序,将容纳60秒的缓冲记录视频。录像需要长时间运行(24至48小时)。我似乎对录音没有任何问题,但似乎几个小时后我就失去了与Camera或Surface的连接。
我设置的最大持续时间:MediaRecorder.setMaxDuration(10 * 1000),以便录音被分割成10秒的片段。
每次我重新启动记录时,我都会以这样一种方式递增输出文件,即6个文件被重用。目的是在任何时候都保持60秒的历史。
如果我在1-2小时后停止录音,录像就会播放得很好。然而,如果我让它运行3-4个小时,停止录音,视频只显示黑色输出与音频。换句话说,就好像它失去了与相机或表面的连接,但却继续录制音频。
有人能解释一下这种行为吗?
如果没有别的,有没有更好的方法来记录X的第二段视频?
FYI:我使用了一个唤醒锁,这样屏幕/CPU就可以继续工作了。
发布于 2011-08-11 15:26:46
我已经回答了我自己的问题。我没有太多的信息,但希望这将提供足够的信息,以帮助处于类似困境的其他人。
首先,我从未发布我的代码,因为它太长了。我没有张贴我的代码片段,因为我不知道问题的根源。尽管我现在已经开始工作了,但我仍然不知道我的旧代码有什么问题。
我的建议:
最后,我放弃了我的代码,从从Development:CameraPreview中找到的代码开始--我在这个站点上的至少一个线程中找到了这些引用。
在那之后,我连续记录了几个小时,没有问题。因此,如果您有类似的情况,我建议使用CameraPreview代码作为起点。
https://stackoverflow.com/questions/6984717
复制相似问题