1

我需要检测视频文件是否有效(如果不是则删除)。这是一个空气应用程序。

对于大文件,可以通过处理MediaPlayerState.PLAYBACK_ERROR状态来完成。没问题。


但是,当有一个空文件empty.mp4时,它不会调度任何 PLAYBACK_ERROR。然后我创建了一个文件 singleChar.mp4(x里面有字母),行为完全一样。

它通过READY状态没有任何问题。 playing当时是真的(文档中说是trueplaying or attempting to play,所以这也不可靠)。

然后我建议它将这些文件视为有效文件duration=0......不!未设置持续时间,durationChange未调度。

目前最好的方法是play()setTimeout大约50ms并检查duration此超时何时到期。至少它在 50% 的情况下有效。然而,这是完全不可靠的。通过延长延迟可以提高可靠性,但我更愿意在用户注意到任何问题之前快速检测并静默处理。

其他可能的方法是检查文件是否小于某个大小(可能是 100KB?),但是,这也是另一种愚蠢的不可靠方法。

那么,有没有一种可靠的方法来检测文件是否是有效的视频文件?

4

0 回答 0