FEC-1322

1. make sure related timer is starting only once. 
2. set a timeout for iPhone change source to prevent crash. 
3. call the callback function in native switch source after calling play()