2012-07-23 1 views
0

사이트에서 MediaElement.js를 사용하려고하는데 모든 브라우저, 즉 IE, 가장 구체적으로 IE9에서 모든 것이 잘 작동합니다 (IE9에서는 순간). 내가 읽은 ME를 동적으로 채우는 것은 IE에서 문제를 일으킬 수 있지만, 해결 방법이 있는지 확실하지 않습니다. 이렇게하는 이유는 이것이 모든 프로젝트 데이터가 getJSON 호출을 통해로드되고 모든 프로젝트가 적절한 데이터로 채워지고 즉시 작성되는 포트폴리오 사이트이기 때문입니다. 비디오 프로젝트가 여러 개 있습니다. 필자는이 코드를 본질적으로 똑같은 방식으로 수행하는 프로젝트 외부의 예제로 코드를 변경했습니다. 방금 HTML을 작성하고 JS에서 컨트롤을 작성하면 작동하지만 JS를 통해 HTML을 만들고 재생하려고하면 오류 로그가 표시됩니다 (코드에서 ME 플레이어 생성시). 코드는 다음과 같습니다.MediaElement.js 동적 콘텐츠가 IE9에서 작동하지 않습니다.

$(function() { 
      var details = { 
        width: 640, 
        height: 480, 
        src: 'work/television/1' 
       }, 
       $body = $('body'), 
       $vid = $('<video width="' + details.width + '" height="' + details.height + '" preload="none" id="vidPlayer1"></video>'), 
       $mp4 = $('<source src="' + details.src + '.mp4" type="video/mp4" title="mp4">'), 
       $webm = $('<source src="' + details.src + '.webm" type="video/webm" title="webm">'), 
       $ogg = $('<source src="' + details.src + '.ogv" type="video/ogg" title="ogg">'), 
       $flash = $('<object width="' + details.width + '" height="' + details.height + '" type="application/x-shockwave-flash" data="swf/flashmediaelement.swf"><param name="movie" value="swf/flashmediaelement.swf"><param name="flashvars" value="controls=true&file=' + details.src + '.mp4"></object>'), 
       $error = $('<p>The available video formats are not supported by your browser. :(</p>'), 
       $controls = $('<div class="videoControls playBtn"></div>'); 

      $body.append($controls); 

      $vid.append($mp4); 
      $vid.append($webm); 
      $vid.append($ogg); 
      $vid.append($flash); 
      $vid.insertAfter($controls); 

      var vidPlayer = new MediaElementPlayer('#vidPlayer1', { 
       features: [], 
       // mode: 'shim', 
       pluginPath: 'swf/', 
       success: function(mediaElement) { 
        console.log('success', mediaElement); 
       }, 
       error: function() { 
        console.log('Error loading player. Please try again.'); 
       } 
      }); 

      $body.on('click', function(evt) { 
       vidPlayer.play(); 
      }); 
     }); 

어떤 도움을 주시면 대단히 감사하겠습니다.

답변

0

문제가 해결되었습니다.

$vid = $('<video width="' + details.width + '" height="' + details.height + '" preload="none" id="vidPlayer-' + row + '-' + slide + '"><source src="' + details.src + '.mp4" type="video/mp4" title="mp4"><source src="' + details.src + '.webm" type="video/webm" title="webm"><source src="' + details.src + '.ogv" type="video/ogg" title="ogg"><p>The available video formats are not supported by your browser. :(</p></video>') 

이 한 성명에서 모든 것을 넣어했고, IE9가 제대로 인식 : $의 장해가되었다 있도록 관심있는 사람들을 위해, 하나의 호출에 내 추가를 결합했다. 이 문제는 소스 변수를 추가하지 않아서 추가하는 것이므로 IE에서 내 비디오 소스가 무엇인지 알 수 없었습니다.

앞으로 도움이되기를 바랍니다.