带有jPlayer的Javascript模式

Javascript pattern with jPlayer

本文关键字:模式 Javascript jPlayer 带有      更新时间:2023-09-26

我只是构建了一个javascript模式,以便在web浏览器中使用jPlayer。像这个代码:

var myplayer = {}
myplayer.Controller = (function() {
        var controller;
        var player_state= "default";
        var player  = jQuery('#jquery_jplayer_2');
    function createController(){
        function initial(){
            player.jPlayer({
                solution: "flash, html",
                supplied: "mp3",
                swfPath: "/js"
            });
           }
           function play(){
              player.jPlayer("play");
           }
            return {
              initial:function(){
                  initial();
              },
              play:function(){
                  play();
              }
            }
     }
     return {
         getController:function(){
             if(!controller){
                 controller = createController();
             }
             return controller;
         }
     }

我通过var mypl=myplayer.controller.getController().initial()调用它;它运行时没有任何错误或警告,但不是初始的jPlayer?这里有javascript经验的人请给我带路,非常感谢!我还检查javascript文件夹和mp3文件的路径是否有效。我在调用前和调用后编写了alert初始函数,它运行了,但仍然没有初始化jPlayer。请帮帮我,请!!!

你太狡猾了。看看这个演示的来源

http://jplayer.org/latest/demo-01/

并使用类似的东西。

下面的代码对我有用,所以如果有人感兴趣,我会在这里发布。我很感激任何人的评论。

var mypl = {};
mypl.player = (function(){
    var myplayer;
    var pl = jQuery("#jquery_jplayer_2").jPlayer;
    function createPlayer(){
        function initialPlayer(domitem){
            if(domitem == undefined){
                domitem = $("#jquery_jplayer_2"); 
            }
            domitem.jPlayer( {
                ready: function () {
                  $(this).jPlayer("setMedia", {
                    mp3: "url_to_mp3_file"
                  });
                },
                solution: "flash, html",
                supplied: "mp3",
                swfPath: "path_to_swf_file_locate"
              });
        }
        function setMedia(title,filepath){
            jQuery("#jquery_jplayer_2").jPlayer("setMedia",{name:title,free:true,mp3:filepath});
        }
        function play(){
            jQuery("#jquery_jplayer_2").jPlayer("play");
        }
        function pause(){
            jQuery("#jquery_jplayer_2").jPlayer("pause");
        }
        function stop(){
            jQuery("#jquery_jplayer_2").jPlayer("stop");
        }
        function volume(volume){
            if(volume == undefined || volume  < 0){
                volume = 0.8;
            }
            jQuery("#jquery_jplayer_2").jPlayer("volume",volume);
        }
        function mute(){
            jQuery("#jquery_jplayer_2").jPlayer("mute");
        }
        function unmute(){
            jQuery("#jquery_jplayer_2").jPlayer("unmute");
        }
        function seek(seek){
            if(seek == undefined || seek < 0){
                seek = 0;
            }
            jQuery("#jquery_jplayer_2").jPlayer("playHead",seek);
        }
        return{
            initialplayer:function(domitem){
                initialPlayer(domitem);
            },
            setmedia:function(title,filepath){
                setMedia(title,filepath);
            },
            play:function(){
                play();
            },
            pause:function(){
                pause();
            },
            stop:function(){
                stop();
            },
            mute:function(){
                mute();
            },
            unmute:function(){
                unmute();
            },
            seek:function(){
                seek();
            }
        }
    }
    return{
        getPlayer:function(){
            if(!myplayer){
                myplayer = createPlayer();
            }
            else{
            }
            return myplayer;
        }
    }
})();

我这样称呼它:

var abc = mypl.player.getPlayer();
abc.initialplayer();

当你点击某个元素时,只需调用abc.play()或abc.stop()。我现在仍然无法使abc.pause()工作。希望尽快解决!!我已经把函数名从pause改为mypause,函数音量也改了,它运行了,但我仍然不知道为什么它不运行!!