How can I get a movie’s time length in a double value without using a plugin? What would the approach look like?
- Determine the file type the movie is saved in (as you didn’t feel like giving us that info :))
- Read copious amounts of documentation on the file format of said video format, some of which could be locked behind NDA’s, patents or paywalls depending on the file format
- Work out where the movie length info is stored in that file format
- Read it and convert it into a double (if its not already)
there may be an API on the respective OS that you could tap into that doesnt require the use of a plugin
Have you tried http://docs.xojo.com/MoviePlayer.Duration ?
Without a plugin, well load it in a MoviePlayer and ask it for the length.
Be careful as loading may be asynchronously!
[code] dim f as FolderItem = SpecialFolder.Desktop.Child(“test.m4v”)
dim a as AVAssetMBS = AVAssetmbs.assetWithFile(f)
if a = nil then
MsgBox “failed to read file at all”
// request duration property
dim e as NSErrorMBS
dim Status as Integer = a.statusOfValueForKey(“duration”, e)
while status < a.AVKeyValueStatusLoaded
// wait for loading in background
status = a.statusOfValueForKey(“duration”, e)
// got it?
if status <> a.AVKeyValueStatusLoaded then
MsgBox “Failed to load duration.”
if e <> nil then
MsgBox str(a.duration.Seconds)+" seconds long."
As you see we also wait for the duration to be loaded asynchronously before we report it.