2012-02-10 155 views
3

早上好,媒体元素Js视频播放器无法正常播放

我尝试使用mediaelementjs视频播放器。 我的HTML:

<video id="player" width="758px" height="400px" controls="controls" autoplay preload="auto"> 
    <source type="video/flv" src="media/demo.flv" /> 
</video> 

的Javascript:

var player = new MediaElementPlayer("#player",{ 
    success: function (mediaElement, domObject) { 

         // call the play method 
         mediaElement.play(); 

        } 
      }); 

我得到这个错误:

Uncaught TypeError: Object #<HTMLEmbedElement> has no method 'pauseMedia' 
mejs.PluginMediaElement.pausemediaelement-and-player.min.js:28 
mejs.MediaElementPlayer.pausemediaelement-and-player.min.js:94 
mejs.MediaElementPlayer.meReadymediaelement-and-player.min.js:85 
mejs.PluginMediaElement.dispatchEventmediaelement-and-player.min.js:32 
mejs.MediaPluginBridge.fireEventmediaelement-and-player.min.js:34 
(anonymous function) 

有什么不对?

你能帮助我吗?

看来它称之为:

pause: function() { 
    if (this.pluginApi != null) { 
     if (this.pluginType == 'youtube') { 
      this.pluginApi.pauseVideo(); 
     } else { 
      this.pluginApi.pauseMedia(); 
     }   


     this.paused = true; 
    } 
}, 

更新 我尝试:

var player = new MediaElementPlayer("#player"); 
player.play(); 

我不”得到错误,但它不能播放。

+0

可以提供脚本,'pauseMedia'是 – mgraph 2012-02-10 13:17:20

+0

暂停:函数(){ \t \t如果(这一点。 pluginApi!= null){ \t \t \t if(this.pluginType =='youtube'){ \t \t \t \t this.pluginApi.pauseVideo(); \t \t \t}否则{ \t \t \t \t this.pluginApi.pauseMedia(); \t \t \t} \t \t \t \t \t \t \t \t \t \t \t \t这一点。paused = true; \t \t} \t}, – paganotti 2012-02-10 13:23:02

回答

0

试试这个:

var player = new MediaElementPlayer("#player"); 
player.play(); 

或本:

new MediaElement('player', { 
    success: function (mediaElement, domObject) { 

    },false); 
mediaElement.play(); 
}); 
+0

我有尝试,你有描述第二模式和我取得以下错误:遗漏的类型错误:无法读空 mejs.HtmlMediaElementShim.createmediaelement-和player.js的特性“标签名”:795 mejs.MediaElementmediaelement-and-player.js:786 – paganotti 2012-02-10 13:31:29

+0

add#'new MediaElement('#player',{' – mgraph 2012-02-10 13:38:43

+0

我试过var player = new MediaElementPlayer(“#player”); player.play();我没有'获取错误,但它不会播放。 – paganotti 2012-02-10 14:07:23

0

至于什么我可以从一个远告诉我认为MediaElementPlayer需要mediaElement.pause();

我发现这个从mediaElementjs.com:

<script> 
// JavaScript object for later use 
var player = new MediaElementPlayer('#player',/* Options */); 
// ... more code ... 
player.pause(); 
player.setSrc('mynewfile.mp4'); 
player.play(); 
</script> 

也许尝试设置暂停();并查看它给出的错误。

1

我真的使用这个:

//Global player 
var Player = {}; 

    var videoDiv = document.getElementById('videoDiv'); 

    if(url.search("youtube") >= 0){ 
     videoDiv.innerHTML = '<video width="480" height="270" id="videoPlayer"><source type="video/youtube" src="'+url+'" /></video>'; 

    }else{ 
     videoDiv.innerHTML = '<video width="480" height="270" id="videoPlayer" src="'+url+'" />'; 

    } 

    $('video').mediaelementplayer({ 
     success: function(media, node, playerElement) { 

      Player = playerElement.media; 

      //console.log('mode: ' + media.pluginType); 

      Player.addEventListener("timeupdate", function(event) { 

       if(Player.paused) return; 

       Editor.setTime(Math.round(Player.currentTime)); 

      }); 
      Player.addEventListener("seeked", function(event) { 

       Editor.setTime(Math.round(Player.currentTime)); 

      }); 
      Player.addEventListener("progress", function(event) { 

       if(Player.paused) return; 

       console.log('currentTime '+Player.currentTime); 
       console.log('progress '+Player.buffered.length); 
       var count = Player.buffered.length; 
       for(i=0;i<count;i++){ 

        console.log('start ',Player.buffered.start(i),'end ',Player.buffered.end(i)); 

       } 

      }); 
      Player.addEventListener("load", function(event) { 

       console.log(event); 

      }); 
      Player.addEventListener("error", function(event) { 

       console.log(event); 

      }); 
      Player.addEventListener("playing", function(event) { 

       console.log(event); 

      }); 
      Player.addEventListener("canplay", function(event) { 

       console.log(event); 

      }); 
      Player.addEventListener("loadeddata", function(event) { 

       console.log(event); 

      }); 
     } 
    }); 


// You can access the Player obj outside the function scope, because it is global 
// But only after the player has been loaded! 

HTML:

<div id="videoDiv" style="width: 360px; height: 300px;" ></div>