Media Element Js视频播放器无法正常播放

时间:2012-02-10 13:12:41

标签: jquery mediaelement.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(); 

我不会&#39;获得错误,但它没有播放。

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

试试这个:

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

或者这个:

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

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

答案 2 :(得分: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>

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

相关问题