Problem in 'play()' at Safari 7.0.4

Low level MIDI support via Javascript
Post Reply
zkun_gs
Posts: 9
Joined: Tue Mar 04, 2014 8:40 am

Problem in 'play()' at Safari 7.0.4

Post by zkun_gs » Sun Jun 22, 2014 7:52 pm

I use Mac OSX 10.9.3 and Safari 7.0.4. When I play SMF data with play() command, first it plays well, but later it plays slowly and not correctly. If I move mouse and click out of Safri and return to Safari, it recovers and plays well. But after about 1 minutes it happens again.
In OSX 10.9.3, other Browsers plays well(Firefox, Opera, Chrome). It occurs only Safari 7.0.4. Is there any method to solve this?

sema
Site Admin
Posts: 358
Joined: Mon Oct 17, 2011 7:28 pm

Re: Problem in 'play()' at Safari 7.0.4

Post by sema » Mon Jun 23, 2014 6:34 pm

Interesting... Thank you for letting me know. Will see what I can do...

sema
Site Admin
Posts: 358
Joined: Mon Oct 17, 2011 7:28 pm

Re: Problem in 'play()' at Safari 7.0.4

Post by sema » Wed Jul 16, 2014 8:10 pm

in the function

Code: Select all

JZZ.MidiFile.Player.prototype.tick()
in the line

Code: Select all

 if(this.playing){ window.setTimeout(f,0); return;}
try to change 0 to 1 or some small number - that may help.

zkun_gs
Posts: 9
Joined: Tue Mar 04, 2014 8:40 am

Re: Problem in 'play()' at Safari 7.0.4

Post by zkun_gs » Mon Sep 15, 2014 9:42 pm

Hi, sema. Thank you for your reply.
I think this might be concerned with 'Safari power saver' added since OS X Mavericks....
It stops plugin function automatically for power saving!
Then it happens only in Safari!!

sema
Site Admin
Posts: 358
Joined: Mon Oct 17, 2011 7:28 pm

Re: Problem in 'play()' at Safari 7.0.4

Post by sema » Tue Sep 16, 2014 9:55 am

Safari is the most troublesome browser on both MacOS and Windows. :)
I'll keep looking for a solution, but if you'll find one - please let me know.
I believe there should be some JavaScript trick to fix the problem.

zkun_gs
Posts: 9
Joined: Tue Mar 04, 2014 8:40 am

Re: Problem in 'play()' at Safari 7.0.4

Post by zkun_gs » Sun Feb 22, 2015 10:00 am

I found a way of avoiding it!
During playing status is ON, you run some small script that changes elements on screen. For example, 2 radio buttons hilite in order.
If elements on screen is changed, Safari don't start auto-power-saving!
This is a very simple solution.

Post Reply