Ste*_*ger 17 video android file mediarecorder
在进行实际录制之前,我们使用MediaRecorder使用setOutputFile()将视频录制到外部存储上的文件中.
一切正常,但主要问题是,一旦录制完成,我们就想开始在VideoView中播放录制的视频.
如何知道文件何时可以读取和播放?
Ron*_*nie 19
该FileObserver
课程完美地满足您的需求.这是文档.它易于使用.在写入后关闭观察文件时,将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
}
}
Run Code Online (Sandbox Code Playgroud)
别忘了打电话stopWatching()
.
我们用以下算法解决了类似的问题:
while (file not complete)
sleep for 1 sec
read the fourth byte of the file
if it is not 0 (contains 'f' of the 'ftyp' header) then
file is complete, break
Run Code Online (Sandbox Code Playgroud)
关键点在于MediaRecorder在最后一刻编写了ftyp框.如果它到位,则文件完成.
归档时间: |
|
查看次数: |
6558 次 |
最近记录: |