jplayer / jPlayer

jPlayer : HTML5 Audio & Video for jQuery
http://jplayer.org/
Other
4.6k stars 1.47k forks source link

fix ie9/ie10 flash classid #284

Closed Lupennat closed 1 year ago

Lupennat commented 9 years ago

On IE9/IE10 swf takes about 2 minutes before it gets loaded. The issue is related to a missing "classid" attribute on the tag.

In IE11 works without any fix.

thepag commented 9 years ago

I wonder what makes your IE9 and IE10 special then? I've never noticed this problem and I've not noticed this being a problem for the past years... When IE9 was new, for example... I made sure it worked fine, even through IE9 beta... So I wonder what is the real problem.

Lupennat commented 9 years ago

I've used VMDisk from ModernIE win7-ie9 and win7-ie10, I've installed Flash Player (16.0.0.235). capture capture2 I can reproduce error going to demo page http://jplayer.org/latest/demo-01-video-solution-flash-html

thepag commented 9 years ago

That is odd then.

In the first instance, I used to develop on a Win 7 machine and regularly tested jPlayer in IE9 and in IE10 when it came out. Never experienced this problem once.

The next odd thing is that now I test using the modern.ie VMs for Mac OSX and they work fine for me too.

The only thing I can think of is that I tend to increase the RAM setting from its minimum in the VM file. For example, the Win 7 IE9 VM setup with 2 cpu and 2GB ram.

Reviewing again now to be sure... And it looks like they released a new build. I will update my version and test again when it downloads.

Testing for now in the older Win 7 IE9 build and it worked first time for me after installing flash and going to the demo with solution:"flash,html" in it. (Yes i checked the flash solution was used.)

I will review this in more detail at the weekend.

thepag commented 9 years ago

I created a VM of the latest IE9 Win 7 build and left the setting at their defaults. I then opened IE9 and waited for the mordern.ie page to load confirming that this was the latest build. It was. I then installed Flash from adobe without the extra options. Then visited jplayer.org and video demo with the Flash solution demo and it worked immediately. I then confirmed the Flash was being used with a right-click over the flash video area and through the jPlayer inspector details.

Lupennat commented 9 years ago

I've done more test about this and I've found the problem, is connected to the MIME Type Detection in IE and my corporate proxy. (IE 11 is not affected by this problem)

IE uses a rather complicated method to determine the MIME type of a file referenced by a URI. (http://msdn.microsoft.com/en-us/library/ie/ms775147(v=vs.85).aspx)

Because of this IE makes a HEAD request to server to get content type and my corporate proxy seems to fail this request.

this is curl result passing by corporate proxy

curl -i -X HEAD http://jplayer.org/latest/dist/jplayer/jquery.jplayer.swf

HTTP/1.0 200 OK
Date: Tue, 13 Jan 2015 09:01:46 GMT
Server: Apache/2.2.16 (Debian)
Last-Modified: Mon, 15 Dec 2014 01:10:04 GMT
ETag: "c4d47-3592-50a36e7061300"
Accept-Ranges: bytes
Content-Length: 13714
Content-Type: application/x-shockwave-flash
X-Cache: MISS from proxy.****.com
X-Cache-Lookup: MISS from proxy.****.com:8080
Via: 1.0 proxy.****.com:8080 (squid/2.6.STABLE21)
Proxy-Connection: keep-alive

curl: (18) transfer closed with 13714 bytes remaining to read

curl -w "@timeFormat.txt" -o /dev/null -s -X HEAD http://jplayer.org/latest/dist/jplayer/jquery.jplayer.swf

time_namelookup:    0,004
time_connect:       0,005
time_appconnect:    0,000
time_pretransfer:   0,005
time_redirect:      0,000
time_starttransfer: 120,082
                   ----------
time_total:         120,082

After a timeout of 120 sec IE uses another method to get the content type and reads object attribute type to find correct classid from system registry.

The problem can be solved by entering the classid directly into object tag like I've done in my revision. (maybe can be write better)

This is very annoying and i've no manner to modify proxy settings.

I think that other people can be affected by this problem and like me can not do anything to solve it.