문제

나는 다음을 사용하는 웹 앱을 만들고 있습니다. MediaElement.js (ME.js) 다양한 브라우저에서 오디오를 재생하고 비디오를 표시합니다.그러나 IE8에 문제가 있습니다.MediaElement를 인스턴스화할 때 <audio>요소를 DOM에서 가져오면 플래시 객체가 생성되어 DOM에 삽입되지만 미디어는 로드되지 않습니다.오류는 보고되지 않습니다.대신 아무 일도 일어나지 않습니다.

디버깅을 시도하면서 동일한 오디오 파일을 재생하려고 시도하는 ME.js를 사용하는 작은 테스트 페이지를 만들었습니다.이상하게도 이 페이지는 잘 작동합니다.IE8은 파일을 로드하고 재생합니다.나는 무엇이 잘못되고 있는지에 대한 힌트를 얻을 수 있는지 알아보기 위해 이 두 페이지 모두 DOM에서 출력되는 내용을 살펴보려고 노력했습니다.

이는 웹 앱에서 가져온 것입니다.

<OBJECT id=me_flash_0 codeBase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 width=1 height=1><PARAM NAME="_cx" VALUE="26"><PARAM NAME="_cy" VALUE="26"><PARAM NAME="FlashVars" VALUE="id=me_flash_0&amp;isvideo=false&amp;autoplay=false&amp;preload=auto&amp;width=1&amp;startvolume=0.8&amp;timerrate=250&amp;height=1&amp;file=http%3A%2F%2Fgsv%2Felearning%2Fapp%2F_dev%2Ftest1.mp3"><PARAM NAME="Movie" VALUE="plugins/flashmediaelement.swf?x=Tue Dec 6 16:06:01 UTC+0100 2011"><PARAM NAME="Src" VALUE="plugins/flashmediaelement.swf?x=Tue Dec 6 16:06:01 UTC+0100 2011"><PARAM NAME="WMode" VALUE="Transparent"><PARAM NAME="Play" VALUE="-1"><PARAM NAME="Loop" VALUE="-1"><PARAM NAME="Quality" VALUE="High"><PARAM NAME="SAlign" VALUE=""><PARAM NAME="Menu" VALUE="-1"><PARAM NAME="Base" VALUE=""><PARAM NAME="AllowScriptAccess" VALUE="always"><PARAM NAME="Scale" VALUE="ShowAll"><PARAM NAME="DeviceFont" VALUE="0"><PARAM NAME="EmbedMovie" VALUE="0"><PARAM NAME="BGColor" VALUE="000000"><PARAM NAME="SWRemote" VALUE=""><PARAM NAME="MovieData" VALUE=""><PARAM NAME="SeamlessTabbing" VALUE="1"><PARAM NAME="Profile" VALUE="0"><PARAM NAME="ProfileAddress" VALUE=""><PARAM NAME="ProfilePort" VALUE="0"><PARAM NAME="AllowNetworking" VALUE="all"><PARAM NAME="AllowFullScreen" VALUE="true"></OBJECT>

... 그리고 이것은 테스트 페이지에서 가져온 것입니다:

<OBJECT id=me_flash_0 codeBase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 width=1 height=1><PARAM NAME="_cx" VALUE="26"><PARAM NAME="_cy" VALUE="26"><PARAM NAME="FlashVars" VALUE="id=me_flash_0&amp;isvideo=false&amp;autoplay=false&amp;preload=auto&amp;width=1&amp;startvolume=0.8&amp;timerrate=250&amp;height=1&amp;file=http%3A%2F%2Fgsv%2Felearning%2Fapp%2F_dev%2Ftest1.mp3"><PARAM NAME="Movie" VALUE="plugins/flashmediaelement.swf?x=Tue Dec 6 16:08:13 UTC+0100 2011"><PARAM NAME="Src" VALUE="plugins/flashmediaelement.swf?x=Tue Dec 6 16:08:13 UTC+0100 2011"><PARAM NAME="WMode" VALUE="Transparent"><PARAM NAME="Play" VALUE="0"><PARAM NAME="Loop" VALUE="-1"><PARAM NAME="Quality" VALUE="High"><PARAM NAME="SAlign" VALUE="LT"><PARAM NAME="Menu" VALUE="-1"><PARAM NAME="Base" VALUE=""><PARAM NAME="AllowScriptAccess" VALUE="always"><PARAM NAME="Scale" VALUE="NoScale"><PARAM NAME="DeviceFont" VALUE="0"><PARAM NAME="EmbedMovie" VALUE="0"><PARAM NAME="BGColor" VALUE="000000"><PARAM NAME="SWRemote" VALUE=""><PARAM NAME="MovieData" VALUE=""><PARAM NAME="SeamlessTabbing" VALUE="1"><PARAM NAME="Profile" VALUE="0"><PARAM NAME="ProfileAddress" VALUE=""><PARAM NAME="ProfilePort" VALUE="0"><PARAM NAME="AllowNetworking" VALUE="all"><PARAM NAME="AllowFullScreen" VALUE="true"></OBJECT>

차이점이 있습니다.첫 번째 스 니펫에서는 다음과 같이 말합니다. <PARAM NAME="Play" VALUE="-1">그리고 두 번째에는 이렇게 말해요 <PARAM NAME="Play" VALUE="0">.이것은 어떻게 보면 중요한 것 같지만 어떻게 해석해야 할지 모르겠습니다.이것은 ME.js에 의해 생성된 마크업이 아니라 .swf 파일이 로드될 때 생성되는 것입니다.플래시 전문가가 아니기 때문에 어떻게 설명할 수는 없습니다.

내가 사용할 때 바이올리니스트 어떤 자산이 로드되는지 모니터링하기 위해 두 페이지의 차이점은 첫 번째 페이지는 .swf 파일을 마지막으로 로드하고 두 번째 페이지는 .swf 파일을 로드한 다음 .mp3을 로드한다는 것입니다.

기본 HTML 요소 대신 플래시 플러그인을 사용하도록 강제하면 웹 앱이 Chrome에서 작동한다는 점을 언급하고 싶습니다.

도움이 되었습니까?

해결책

플래시 개체가 다음 요소 안에 있는 경우 미디어 파일을 로드하지 않는 것으로 나타났습니다. visibility:hidden.단, IE에서만 가능합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top