2011-05-30 37 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> 
相关问题