2011-05-30 121 views
1

我想在鼠標上自動播放我的視頻。 任何人都可以告訴我如何通過媒體播放器或Flash播放器進行播放嗎?無論如何,我可以把鼠標懸停在電影剪輯上來自動播放我的電影嗎?

PS:我可以在Flash播放器中播放WMV/ASF/MP4嗎?

+0

此網址可能會幫助您:http://code.google.com/intl/pl/apis/youtube/js_api_reference.html。我認爲Flash Player不能播放wmv,asf,mp4。 下一次請求添加更多標籤 - 它會幫助您獲得fastee答案。 – 2011-05-30 17:51:23

+0

什麼媒體播放器?什麼Flash Player? – Kissaki 2011-05-30 18:10:50

回答

1

嗯,我發現使用swf文件在瀏覽器中顯示電影最容易,原因有兩個:易於使用的JavaScript來控制它們,它們在舊的瀏覽器中工作。 (很容易將任何電影格式轉換爲swf)。

另外還有簡單的swf自由,我在相當深入的時間看了一眼,找不到一個單獨的flashplayer,即使我願意花時間研究和編程,也可以100%控制它。

幸運的是,我有一個簡單的JS框架,我自己在網頁中嵌入和控制電影(應該可以在所有瀏覽器中工作)[注意:我理解JS類的時候甚至比現在更少]。

//http://www.adobe.com/support/flash/publishexport/scriptingwithflash/scriptingwithflash_03.html 

function FlashController(name) 
{ 
    this.flashMovie = this.getFlashMovieObject(name); 

    this.getXPos =  function() 
       { 
        return (this.flashMovie.TGetPropertyAsNumber("/", 0)); 
       }; 

    this.getYPos =  function() 
       { 
        return (this.flashMovie.TGetPropertyAsNumber("/", 1)); 
       }; 

    this.getXScale = function() 
       { 
        return (this.flashMovie.TGetPropertyAsNumber("/", 2)); 
       }; 

    this.getYScale = function() 
       { 
        return (this.flashMovie.TGetPropertyAsNumber("/", 3)); 
       }; 

    this.getNextFrame = function() 
       { 
        return (this.flashMovie.TGetPropertyAsNumber("/", 4)); 
       }; 

    this.getCurrentFrame = function() 
       { 
        return (this.flashMovie.TGetPropertyAsNumber("/", 4) - 1); 
       }; 

    this.getTotalFrames = function() 
       { 
        return (this.flashMovie.TGetPropertyAsNumber("/", 5)); 
       }; 

    this.getAlpha =  function() 
       { 
        return (this.flashMovie.TGetPropertyAsNumber("/", 6)); 
       }; 

    this.getVisibility = function() 
       { 
        return (this.flashMovie.TGetPropertyAsNumber("/", 7)); 
       }; 

    this.getWidth =  function() 
       { 
        return (this.flashMovie.TGetPropertyAsNumber("/", 8)); 
       }; 

    this.getHeight = function() 
       { 
        return (this.flashMovie.TGetPropertyAsNumber("/", 9)); 
       }; 

    this.getRotation = function() 
       { 
        return (this.flashMovie.TGetPropertyAsNumber("/", 10)); 
       }; 

    this.getTarget = function() 
       { 
        return (this.flashMovie.TGetProperty("/", 11)); 
       } 
    this.getFramesLoaded = function() 
       { 
        return (this.flashMovie.TGetPropertyAsNumber("/", 12)); 
       }; 

    this.getName =  function() 
       { 
        return (this.flashMovie.TGetProperty("/", 13)); 
       }; 

    this.getDropTarget = function() 
       { 
        return (this.flashMovie.TGetProperty("/", 14)); 
       }; 

    this.getURL =  function() 
       { 
        return (this.flashMovie.TGetProperty("/", 15)); 
       }; 

    this.getHighQuality = function() 
       { 
        return (this.flashMovie.TGetProperty("/", 16)); 
       }; 

    this.getFocusRect = function() 
       { 
        return (this.flashMovie.TGetProperty("/", 17)); 
       }; 

    this.getSoundBufTime = function() 
       { 
        return (this.flashMovie.TGetProperty("/", 18)); 
       }; 

    this.setXPos =  function(value) 
       { 
        this.flashMovie.TSetProperty("/", 0, value); 
       }; 

    this.setYPos =  function(value) 
       { 
        this.flashMovie.TSetProperty("/", 1, value); 
       }; 

    this.setXScale = function(value) 
       { 
        this.flashMovie.TSetProperty("/", 2, value); 
       }; 

    this.setYScale = function(value) 
       { 
        this.flashMovie.TSetProperty("/", 3, value); 
       }; 

    this.setAlpha =  function(value) 
       { 
        this.flashMovie.TSetProperty("/", 6, value); 
       }; 

    this.setVisibility = function(value) 
       { 
        this.flashMovie.TSetProperty("/", 7, value); 
       }; 

    this.setRotation = function(value) 
       { 
        this.flashMovie.TSetProperty("/", 10, value); 
       }; 

    this.setName =  function(value) 
       { 
        this.flashMovie.TSetProperty("/", 13, value); 
       }; 

    this.setHighQuality = function(value) 
       { 
        this.flashMovie.TSetProperty("/", 16, value); 
       }; 

    this.setFocusRect = function(value) 
       { 
        this.flashMovie.TSetProperty("/", 17, value); 
       }; 

    this.setSoundBufTime = function(value) 
       { 
        this.flashMovie.TSetProperty("/", 18, value); 
       }; 

    this.getVariable = function(path) 
       { 
        return (this.flashMovie.GetVariable(path)); 
       }; 

    this.gotoFrame = function(num) 
       { 
        var loaded = getFramesLoaded(); 
        if(num > loaded) 
        { 
         return (this.flashMovie.GoToFrame(loaded)); 
        } 
        return (this.flashMovie.GoToFrame(num)); 
       }; 

    this.isPlaying = function() 
       { 
        return (this.flashMovie.IsPlaying()); 
       }; 

    this.loadMovie = function(layerNum, url) 
       { 
        return (this.flashMovie.loadMovie(layerNum, url)); 
       }; 

    this.panPixels = function(hPx, vPx) 
       { 
        this.flashMovie.Pan(hPx, vPx, 0); 
       }; 

    this.panPercent = function(hP, vP) 
       { 
        this.flashMovie.Pan(hP, vP, 1); 
       }; 

    this.getPercentLoaded = function() 
       { 
        var value = Math.round(movieControls.getFramesLoaded()/movieControls.getTotalFrames() * 100); 
        if(isNaN(value)) 
        { 
         value = 0; 
        } 
        return (value); 
       }; 

    this.play =  function() 
       { 
        this.flashMovie.Play(); 
       }; 

    this.rewind =  function() 
       { 
        this.flashMovie.Rewind(); 
       }; 

    this.setVariable = function(path, value) 
       { 
        this.flashMovie.setVariable(path, value); 
       }; 

    this.zoomRect =  function(left, top, right, bottom) 
       { 
        this.flashMovie.SetZoomRect(left, top, right, bottom); 
       }; 

    this.stop =  function() 
       { 
        this.flashMovie.StopPlay(); 
       }; 

    this.zoom =  function(percent) 
       { 
        this.flashMovie.Zoom(percent); 
       }; 

    this.zoomReset = function() 
       { 
        this.flashMovie.Zoom(0); 
       }; 

    this.callFrame = function(frame) 
       { 
        this.flashMovie.TCallFrame("/", frame);   
       }; 

    this.callLabel = function(label) 
       { 
        this.flashMovie.TCallLabel("/", label);   
       }; 

    this.currentLabel = function() 
       { 
        return (this.flashMovie.TCallLabel("/"));   
       }; 

    this.goToFrame = function(num) 
       { 
        this.flashMovie.TGotoFrame("/", num); 
       }; 

    this.goToLabel = function(label) 
       { 
        this.flashMovie.TGotoLabel("/", label); 
       }; 
/* 
//Description: Generated as the Flash movie is downloading. The argument type is integer. 
    this.OnProgress = function(percent) 
       { 
       }; 

//Description: Generated when the ready state of the control changes. 
//The possible states are: 
//0=Loading, 1=Uninitialized, 2=Loaded, 3=Interactive, 4=Complete. 
    this.OnReadyStateChange = function(state) 
        { 
        };  

//Description: Generated when an FSCommand action is performed in the movie with a URL 
//and the URL starts with FSCommand : 
//Use this to create a response to a frame or button action in the Flash movie. 
//The argument type is string. 
    this.FSCommand = function(command, args) 
       { 
       };*/   

    this.nextFrame = function() 
       { 
        var nextFrame = getNextFrame(); 
        if(nextFrame >= getTotalFrames()) 
        { 
         nextFrame = 0; 
        } 

        goToFrame(nextFrame); 
       }; 
} 

FlashController.prototype.getFlashMovieObject = function(movieName) 
{ 
    if (window.document[movieName]) 
    { 
     return (window.document[movieName]); 
    } 
    if (navigator.appName.indexOf("Microsoft Internet")==-1) 
    { 
     if (document.embeds && document.embeds[movieName]) 
     { 
      return (document.embeds[movieName]); 
     } 
    } 
    else // if (navigator.appName.indexOf("Microsoft Internet")!=-1) 
    { 
     return (document.getElementById(movieName)); 
    } 
} 

FlashController.embedVideo = function(location, name, filePath, bgColor, width, height) 
{ 
    location.innerHTML += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ' 
       + 'codebase="" id="' + name + '" width=' + width + ' height=' + height + '>' 
       + '<param name="movie" value="' + filePath + '">' 
       + '<embed play=false swliveconnect=true name="' + name + '" ' 
       + 'src="' + filePath + '" quality="high" ' 
       + 'bgcolor=' + bgColor + ' width=' + width + ' height=' + height + ' type="application/x-shockwave-flash">' 
       + '</embed></object>'; 

} 

要使用(我認爲,它已經一段時間):

FlashController.embedVideo(nodeToPutItIn, "movie.swf", fullPathToSWF, backGroundColor, width, height); //Or simply hard code into the webpage. 
var myMovie = new FlashController("movie.swf"); 
nodeToPutItIn.onMouseOver = "myMovie.play();"; //never actually done this command before so syntax might be off. 
//Note: you have to wait for the movie to load if it is over a slow connection or it is big. 

如果您有任何更具體的問題,然後隨便問。

+0

嗨,所有,現在我在我的項目中使用jwplayer ...它只支持MP4和SWF和FLV格式,我可以通過C#編碼視頻? – 2011-05-31 02:25:05

+0

是的,它是一種編程語言,所以你幾乎可以用它做任何事情......但是當你只需要下載一個編碼器時,你爲什麼要編程自己的編碼器呢? – Jonathon 2011-05-31 02:29:15

+0

嗨喬納森,我會嘗試你的代碼,並讓你知道...它似乎非常好! – 2011-05-31 02:29:34

1

我終於找到了一種通過使用流播放器來解決這個問題的方法。

<'a' href="/PlayList/myvideo.flv" style="display: block; width: 520px; height: 330px" 
     id="player"> 
    /<'a'> 
    <!-- this will install flowplayer inside previous A- tag. --> 
    <script type="text/javascript"> 

     flowplayer("player", "flowplayer-3.2.7.swf", { 
      clip: { 
       autoPlay: false, 
       autoBuffering: true 
      }, 
      onLoad: function() { // called when player has finished loading 
       this.setVolume(30); // set volume property    
      }, 
      onMouseOver: function() { 

       this.play(); 

      }, 
      onMouseOut: function() { 
       this.stop(); 
      } 
     }); 

    </script>