This is totally bizarre as I just revisited some old audio player templates I created and got the same duration as fore mentioned. What I did notice is that if you re-select the same audio file it will give you the correct audio duration.
Assuming this is a bug that has to do with
[beacon.signal] |VODStartComplete ----------> Duration
firing off after the duration was printed or set and I would get the error.
I was able to bypass it with conditional statements that print and set the duration after
[beacon.signal] |VODStartComplete ----------> Duration
and that worked.
Here is what I did.
First, right after calling the play function
m.audio.control = "play"
m.seek = 0 '<added
then by observing the audio state I wrote my conditional statements there,.
if (m.audio.state = "playing")
if m.seek = 0
m.audio.seek = 0
m.seek = 1
else if m.seek = 1 then
print "audio duration = " m.audio.duration
end if
I hope that helps someone else who had this happen to them or until Roku fixes this bug.