2013-02-06 18 views
2

사람은 알고 있나요 자바 스크립트를 통해 액세스 할 수 있습니까?스트로브 미디어 재생 (OSMF) 이벤트

나는 이것을 시험해 보았지만 기쁨은 없었다.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <title>Strobe Media Playback</title> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script> 
    <script type="text/javascript">   

     // Create a StrobeMediaPlayback configuration 
     // http://mediapm.edgesuite.net/strobe/content/test/AFaerysTale_sylviaApostol_640_500_short.flv 
     // http://osmf.org/dev/1.6-sprint-2/hello-world-jquery-plugin.html# 
     var parameters = 
      { 
       src: "http://stream.flowplayer.org/bauhaus/624x260.mp4" 
      , autoPlay: true 
      , controlBarAutoHide: false 
      , javascriptCallbackFunction: "onJavaScriptBridgeCreated" 
      }; 

     // Embed the player SWF:    
     swfobject.embedSWF 
      ("StrobeMediaPlayback.swf" 
      , "strobeMediaPlayback" 
      , 640 
      , 480 
      , "10.1.0" 
      , {} 
      , parameters 
      , { allowFullScreen: "true"} 
      , { name: "strobeMediaPlayback" } 
      ); 

     function completeFunc(time, playerId) { 
      //var player = document.getElementById(playerId); 
      alert("!!!"); 
     } 

     function onCurrentTimeChange(time, playerId) 
     { 
      document.getElementById("currentTime").innerHTML = time;   
     } 

     function onDurationChange(time, playerId) 
     { 
      document.getElementById("duration").innerHTML = time; 
     }  
     var player = null; 
     function onJavaScriptBridgeCreated(playerId) 
     { 
      if (player == null) { 
       player = document.getElementById(playerId); 

       // Add event listeners that will update the 
       player.addEventListener("currentTimeChange", "onCurrentTimeChange"); 
       player.addEventListener("durationChange", "onDurationChange"); 

       player.addEventListener("complete", "completeFunc"); 

       // Pause/Resume the playback when we click the Play/Pause link 
       document.getElementById("play-pause").onclick = function(){ 
        var state = player.getState(); 
        if (state == "ready" || state == "paused") { 
         player.play2(); 
        } 
        else 
         if (state == "playing") { 
          player.pause(); 
         } 
        return false; 
       }; 
      } 
     } 
    </script> 
    </head> 
    <body> 
    <div> 
     <div> 
      <span id="currentTime" /> ... </span> : <span id="duration" /> ... </span> 
     </div> 
     <a href="#" id="play-pause">Play/Pause</div> 
    </div> 
    <div id="strobeMediaPlayback"> 
     <p>Alternative content</p> 
    </div> 
    </body> 
</html> 

감사!

P. 내가 볼 수 있듯이 hereSTATE 변수를 사용하여 동영상의 끝을 감지 할 수 있습니다. 비디오의 끝 부분에서 "PAUSED"으로갑니다. 이런 방식으로 사용할 수 있습니까?


는 UPDATE :

나는 onJavaScriptBridgeCreated 방법은 트리거하지 않는 것을 발견했다. SMP의 모든 예에서도 마찬가지입니다.

단서가 있습니까?

+0

내가 추측이 http://office.realeyes.com/strobe/demo/indexjs.html를 실행 해보십시오. 내가 thia 서버에서 실행하면 그것은 나를 위해 작동하지만, 내가 로컬로 저장 - 아무것도 작동하지 않습니다. – sab

답변

2

있습니다.

function changeVidSrc(url, posterUrl, id, width, height, autoplay) { 

var flashvars = 
{ 
    src: url, 
    autoPlay: autoplay, 
    controlBarAutoHide: true, 
    poster: posterUrl, 
    skin: 'skinPath', //i just needed skin, remove if not needed 
    javascriptCallbackFunction: "onJavaScriptBridgeCreated" 

}; 

var parameters = { allowFullScreen: "true"}; 

var attributes = { name: id }; 

// Embed the player SWF: 
    swfobject.embedSWF 
     ('/swfs/StrobeMediaPlayback.swf', 
      id, width, height, 
      "10.1.0", 
      '', 
      flashvars, 
      parameters, 
      attributes 
     ); 

} 

몇 가지 중요한 세부 정보 :
1. 내가 제대로 불을 지르고으로 디버깅 할 수 없습니다. 나는 행동을 이해할 수 없다.
2. nameattributes 개체에 전달하는 것은 FF에 중요합니다. 그렇지 않으면 콜백 트리거가 처리되지만 아무런 이벤트도 발생하지 않습니다.
var player 및 처리기 기능을 맨 위에 배치 할 것을 권장합니다.

+0

또는 스트로브 미디어 코드를 수정할 수 있습니다 –

+0

// StrobeMediaPlayer.as 파일에서 autoPlay의 기본값을 false (비즈니스 요구 사항)로 변경 autoPlay = true; –

0

스트리밍이 종료 :

var onJavaScriptBridgeCreated = function (event) { 
    if (event === ''onJavaScriptBridgeCreated'') { 
     var player = document.getElementById('the id of the object tag'); 
     var callback = function(event){console.log(event);}; 
     //stopped 
     player.addEventListener("complete", "callback"); 
     //started 
     player.addEventListener("playStateChange", "callback"); 
     //error 
     player.addEventListener("mediaError", "callback"); 
    } 
}