Quictime Controller Scripts Failing on Windows

Sannyasin Sivakatirswami katir at hindu.org
Fri Nov 12 00:46:38 EST 2004


See previous post on this thread for more detail, but I think I have 
narrowed it down.

The culprit I conclude now to be:

On Windows: setting the currenttime of a player, stops it, and if you 
start it again, it resets the currentTime of the player to zero and 
starts playing from the beginning.

and since I cannot get the controller to appear on Windows, this 
effectively means this application is dead on Windows: there is not way 
for the user to move back and forth in the player... which is an 
absolute requirement for transcription work.

;-(  as I really need to have it working on Windows asap...

Read on for the saga, that took nearly three hours of testing, save, 
zipping moving to a Windows machine for testing ...



On Nov 11, 2004, at 6:18 PM, Sannyasin Sivakatirswami wrote:

> global gTimeScale
> on mouseUp
>     set the currentTime of player "theTape" to fld "theMovieTime" -\
>       (gTimeScale * fld "jumpSecs")
> end mouseUp

this works fine on Mac OSX, if the player is running, it jumps back and 
continues... On Windows, the player stops cold. If I add an explicit 
"Start Player" like this:

global gTimeScale
on mouseUp
     set the currentTime of player "theTape" to fld "theMovieTime" -\
       (gTimeScale * fld "jumpSecs")
     start player "theTape"
end mouseUp

Windows will start the player over again, but at zero.

On first appearance one might conclude that Windows cannot get/read or 
set  the currentTime of a player object. And is defaulting to zero on a 
start player command.

*but* in my stack script I have a send message that updates the user 
fields which proves it *does* read the currentTime of the player:

on postTime
put empty into fld "thetime"
   put the timescale of player "theTape" into intervalsPerSec
   put the currentTime of player "theTape" into fld "theMovieTime"
put the currentTime of player "theTape" into tCurrentTime
   put  (tCurrentTime div intervalsPerSec) & " secs" into fld "theTime"
   if tCurrentTime  is not (the duration of player "theTape") then
     send postTime to me in 1  seconds
   else
     answer "Tape is over!" with "OK"
   end if
end postTime

OK this is working just fine... fields are being posted with the 
current time...

So that leaves the variable "gTimeScale" as possibly being null on 
Windows.  this is initialized on Windows in the initial start player 
script.  Is it possible that on Windows, you cannot read the timescale 
of a QT player object if it has not been started, but on Mac you can?

global gTimeScale
on mouseUp
   set the currentTime of player "theTape" to 0
   if (there is a file fld "soundFile") is not true then
     answer "I cannot find that audio file." & cr & \"
     "Did you move it or delete it? You can selected it again if  you 
are not finished, but click NO when asked to clear the header info." 
with "OK"
     exit mouseup
     end if
   set the filename of player "theTape" to fld "soundFile"
   put the timescale of player "theTape" into gTimeScale

   if ((char 1 to 4  of fld "soundFile") = "http") then
     testNetConnection
     wait 20 ticks
     if  button "Connected" is disabled  then
       answer "Sorry, you are not connected to the internet. Please log 
on and try again." with "OK"
       exit mouseUp
     end if
   end if

   start player "theTape"
   clearTimeFields
   send insertAudioDuration to this stack in 15 secs
   send postTime to this stack in 15 seconds
end mouseUp

OK, so I change my post message to poke the gtimeScale propety of the 
current player *after* it has been started and is running for 
sometime... OK, now it it does seem to read the time scale... but, 
click the back up or forward or pick up from last sesson buttons just 
stops the... OK finally I think I have the gremlin:

A button which picks up from last session has this script:

global gTimeScale

on mouseUp
   start player "theTape"
   set the currentTime of player "theTape" to fld "saveTime"
   put the timescale of player "theTape" into gTimeScale
   send insertAudioDuration to this stack in 2 secs
   send postTime to this stack in 2 seconds

end mouseUp

it does nothing. the player is not started...

so the culprit I conclude now to be:

On windows: setting the currenttime of a player, stops it , and if you 
start it again, it resets the currentTime of the player to zero and 
starts playing from the beginning.

can any help from out windows QT wizards?

Sannyasin Sivakatirswami
Himalayan Academy Publications
at Kauai's Hindu Monastery
katir at hindu.org

www.HimalayanAcademy.com,
www.HinduismToday.com
www.Gurudeva.org
www.Hindu.org









More information about the use-livecode mailing list