I'm writing a custom count down timer with sound alert at some intervals, it runs OK on Laptop (web app), but on android I got (in the debugger):
I always thought that sound files will be embedded in the final apk file, isn't true?LoadSound(0, "./data/beep2s.wav"): Loading error
LoadSound(1, "./data/beep5s.wav"): Loading error
Also the timer events seems stopping when screen is off, no count down happens.
Any help is appreciated
Thanks
Code: Select all
XIncludeFile "E:\install\dvd1\dev_soft\SpiderBasic\extra\Preferences-master\Preferences.sbi"
Enumeration
#Button=0
#CheckBox=#Button+100
#Text=#CheckBox+6
#Radio=#Text+20
#Image=#Radio+50
#String=#Image+10
#Frame3D0=#String+20
#Editor=#Frame3D0+5
EndEnumeration
InitSound()
Global x.i=0, flag.a=0, xst.u, flags=1, k.b=1
Declare disp()
UseModule Preferences
Procedure save1()
If OpenPreferences("chrono.ini")
WritePreferenceInteger("t1", x)
Debug "success save1: "+Str(x)
Else
Debug "failure save1"
EndIf
ClosePreferences()
EndProcedure
Procedure save2()
If OpenPreferences("chrono.ini")
WritePreferenceInteger("t2", x)
Debug "success save1: "+Str(x)
Else
Debug "failure save1"
EndIf
ClosePreferences()
EndProcedure
Procedure save3()
If OpenPreferences("chrono.ini")
WritePreferenceInteger("t3", x)
Debug "success save1: "+Str(x)
Else
Debug "failure save1"
EndIf
ClosePreferences()
EndProcedure
Procedure save4()
If OpenPreferences("chrono.ini")
WritePreferenceInteger("t4", x)
Debug "success save1: "+Str(x)
Else
Debug "failure save1"
EndIf
ClosePreferences()
EndProcedure
Procedure rec1()
If flag=0
If OpenPreferences("chrono.ini")
x = ReadPreferenceInteger("t1", 0)
Debug "success recall1: "+Str(x)
Else
Debug "failure recall1"
EndIf
ClosePreferences()
EndIf
EndProcedure
Procedure rec2()
If flag=0
If OpenPreferences("chrono.ini")
x = ReadPreferenceInteger("t2", 0)
Debug "success recall1: "+Str(x)
Else
Debug "failure recall1"
EndIf
ClosePreferences()
EndIf
EndProcedure
Procedure rec3()
If flag=0
If OpenPreferences("chrono.ini")
x = ReadPreferenceInteger("t3", 0)
Debug "success recall1: "+Str(x)
Else
Debug "failure recall1"
EndIf
ClosePreferences()
EndIf
EndProcedure
Procedure rec4()
If flag=0
If OpenPreferences("chrono.ini")
x = ReadPreferenceInteger("t4", 0)
Debug "success recall1: "+Str(x)
Else
Debug "failure recall1"
EndIf
ClosePreferences()
EndIf
EndProcedure
Procedure.s str2(x.a)
ProcedureReturn Right("0"+Str(x),2)
EndProcedure
Procedure disp()
Define min.a, sec.a
Debug "inside disp: x="+Str(x)
Debug "inside disp: xst="+Str(xst)
If x < 0
x=0
EndIf
min=x/60
sec=x % 60
Debug "inside disp: min="+Str(min)
Debug "inside disp: sec="+Str(sec)
SetGadgetText(#Text, str2(min)+":"+str2(sec))
If (x = xst/2) And (flag=1)
PlaySound(0)
EndIf
If x=0
flag=0
EndIf
EndProcedure
Procedure add1()
x=x+k*10*60
disp()
EndProcedure
Procedure add2()
x=x+k*5*60
disp()
EndProcedure
Procedure add3()
x=x+k*1*60
disp()
EndProcedure
Procedure add4()
x=x+k
disp()
EndProcedure
Procedure start()
If x> 0
flag=1
xst=x
EndIf
EndProcedure
Procedure stop()
flag=0
EndProcedure
Procedure clear()
flag=0
x=0
EndProcedure
Procedure setplus()
k=1
SetGadgetState(#Button+7,1)
SetGadgetState(#Button+8,0)
EndProcedure
Procedure setminus()
k=-1
SetGadgetState(#Button+7,0)
SetGadgetState(#Button+8,1)
EndProcedure
Procedure TimerEvents()
If flag=1
If x > 0
x=x-1
EndIf
EndIf
disp()
EndProcedure
Procedure Loading(Type, Filename$, ObjectId)
Static NbLoadedElements
Debug Filename$ + " loaded (id = " + ObjectId + ")"
NbLoadedElements+1
If NbLoadedElements = 2 ; Finished the loading of all sounds, we can start the application
Start()
EndIf
If OpenPreferences("chrono.ini")
Debug "chrono.ini exists"
t1 = ReadPreferenceInteger("t1", 0)
t2 = ReadPreferenceInteger("t2", 0)
t3 = ReadPreferenceInteger("t3", 0)
t4 = ReadPreferenceInteger("t4", 0)
Else
Debug "chrono.ini doesn't exists"
WritePreferenceInteger("t1", 0)
WritePreferenceInteger("t2", 0)
WritePreferenceInteger("t3", 0)
WritePreferenceInteger("t4", 0)
ClosePreferences()
EndIf
EndProcedure
Procedure LoadingError(Type, Filename$)
Debug Filename$ + ": loading error"
EndProcedure
OpenWindow(0,100,100,350,400,"CHRONO", #PB_Window_SizeGadget | #PB_Window_BorderLess)
SetGadgetFont(#PB_Default, LoadFont(0, "Arial", 50))
TextGadget(#Text,10,10,200,75,"00:00",#PB_Text_Border )
SetGadgetFont(#PB_Default, LoadFont(0, "Arial", 24))
ButtonGadget(#Button,20, 100,50,30,"10")
BindGadgetEvent(#Button, @add1())
ButtonGadget(#Button+1,90, 100,50,30,"5")
BindGadgetEvent(#Button+1, @add2())
ButtonGadget(#Button+2,160, 100,50,30,"1")
BindGadgetEvent(#Button+2, @add3())
ButtonGadget(#Button+6,230, 100,50,30,"1s")
BindGadgetEvent(#Button+6, @add4())
ButtonGadget(#Button+3,20, 150,100,30,"START")
BindGadgetEvent(#Button+3, @start())
ButtonGadget(#Button+4,120, 150,100,30,"STOP")
BindGadgetEvent(#Button+4, @stop())
ButtonGadget(#Button+5,220, 150,100,30,"CLEAR")
BindGadgetEvent(#Button+5, @clear())
ButtonGadget(#Button+7,220, 10,70,30,"+",#PB_Button_Toggle)
BindGadgetEvent(#Button+7, @setplus())
ButtonGadget(#Button+8,220, 50,70,30,"-",#PB_Button_Toggle)
BindGadgetEvent(#Button+8, @setminus())
SetGadgetState(#Button+7,1)
ButtonGadget(#Button+9,20, 200,70,30,"RC1")
BindGadgetEvent(#Button+9, @rec1())
ButtonGadget(#Button+10,100, 200,70,30,"RC2")
BindGadgetEvent(#Button+10, @rec2())
ButtonGadget(#Button+11,180, 200,70,30,"RC3")
BindGadgetEvent(#Button+11, @rec3())
ButtonGadget(#Button+12,260, 200,70,30,"RC4")
BindGadgetEvent(#Button+12, @rec4())
ButtonGadget(#Button+13,20, 250,70,30,"S1")
BindGadgetEvent(#Button+13, @save1())
ButtonGadget(#Button+14,100, 250,70,30,"S2")
BindGadgetEvent(#Button+14, @save2())
ButtonGadget(#Button+15,180, 250,70,30,"S3")
BindGadgetEvent(#Button+15, @save3())
ButtonGadget(#Button+16,260, 250,70,30,"S4")
BindGadgetEvent(#Button+16, @save4())
AddTimer(0, 1000)
BindEvent(#PB_Event_Timer, @TimerEvents())
BindEvent(#PB_Event_Loading, @Loading())
BindEvent(#PB_Event_LoadingError, @LoadingError())
LoadSound(0, "./data/beep2s.wav")
LoadSound(1, "./data/beep5s.wav")
UnuseModule Preferences
;CreateFile(0,"preferences.txt",@SaveFileCallback(),#PB_LocalStorage)