Setting play SoundFile or play Empty Too Quickly Causes Crash in iOS
Brahmanathaswami
brahma at hindu.org
Fri Sep 11 19:06:42 EDT 2015
I have the following behavior running in a series of buttons that play
audio which is local to the app.
They work fine on the desktop (OS X) but in iOS if I click on any
button too soon, the app crashes.
I've done some tests and I have to wait at about 5.5 seconds before
clicking again, if we allow the app to have this time... then it does
not crash.
This "must wait" delta is more than users would want to experience.
It seems to be coming from toggling between
play empty
play soundfile
play empty
play soundfile
it too rapid a succession...
play empty
# wait 5.5 seconds
play soundfile
# wait 5.5 seconds
play empty
# wait 5.5 seconds
play soundfile
# wait 5.5 seconds
and everything works fine.
It's almost as if iOS needs to clear something in the mobile player...
before you can reset it. i don't think any of the other
processes/handlers in my script are causing this...
Anyone have any clues?
------------------
global gPlayerIsRunning, gCurrentAudio
local aAudioMetadata,tTitle,tDuration,tAudioPath,tButton
on mouseUp
set the itemdel to "_"
put item 2 of the short name of me into tButton # e.g "audio_2"
set the itemdel to comma
# metadata for eight audio files is stored locally in a JSON file.
put fetchAudioJson() into aAudioMetadata
put (localPath() & "audio/"&
aAudioMetadata["audioOnBoard"][tButton]["filename"]) into tAudioPath
# the rest is very simple, play the sound, move some indicators on the
UI or stop the sound:
if (gPlayerIsRunning = 1) AND (gCurrentAudio = (the label of me) ) then
# We are just stopping the current audio
# by tapping on the same audio button
set the icon of btn "audioToggle" to 1304 # start playing icon
if the environment <> "mobile" then
set the dontUseQT to true
stop player "listenToGurudeva"
else
play empty
end if
put 0 into gPlayerIsRunning
else
put the loc of btn "audioToggle" into tNewLoc
put the loc of fld "duration" into tNewDurationLoc
put the loc of me into tCurrentLoc
put ( (item 2 of tCurrentLoc) ) into item 2 of tNewLoc
set the loc of btn "audioToggle" to tNewLoc
put ( (item 2 of tCurrentLoc) +2 ) into item 2 of tNewDurationLoc
set the loc of fld "duration" to tNewDurationLoc
put the uDuration of me into fld "duration"
set the icon of btn "audioToggle" to 1303 # pause icon
if the environment <> "mobile" then
set the dontUseQT to true
set the filename of player "listenToGurudeva" to tAudioPath
start player "ListenToGurudeva"
else
play tAudioPath
end if
put 1 into gPlayerIsRunning
put the label of me into gCurrentAudio
end if
end mouseUp
BR
More information about the use-livecode
mailing list