1

我只是构建了一个 javascript 模式来在网络浏览器中使用 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 文件是否有效。我在调用之前和调用初始函数之后编写警报并运行它,但仍然不是初始 jPlayer。请帮帮我,拜托!!!

4

2 回答 2

0

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

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 和 function volume,它运行但我仍然不知道它为什么运行!

于 2011-07-07T03:12:10.980 回答
0

你太狡猾了。查看此演示的源代码

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

并使用与此非常相似的东西。

于 2011-06-11T02:34:16.030 回答