我需要检测视频文件是否有效(如果不是则删除)。这是一个空气应用程序。
对于大文件,可以通过处理MediaPlayerState.PLAYBACK_ERROR
状态来完成。没问题。
但是,当有一个空文件empty.mp4
时,它不会调度任何 PLAYBACK_ERROR。然后我创建了一个文件 singleChar.mp4(x
里面有字母),行为完全一样。
它通过READY
状态没有任何问题。 playing
当时是真的(文档中说是true
时playing or attempting to play
,所以这也不可靠)。
然后我建议它将这些文件视为有效文件duration=0
......不!未设置持续时间,durationChange
未调度。
目前最好的方法是play()
,setTimeout
大约50ms
并检查duration
此超时何时到期。至少它在 50% 的情况下有效。然而,这是完全不可靠的。通过延长延迟可以提高可靠性,但我更愿意在用户注意到任何问题之前快速检测并静默处理。
其他可能的方法是检查文件是否小于某个大小(可能是 100KB?),但是,这也是另一种愚蠢的不可靠方法。
那么,有没有一种可靠的方法来检测文件是否是有效的视频文件?