2012-02-10 160 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>