use*_*342 5 javascript jquery jplayer
如果之前有人使用过jplayer,我需要帮助解决这个问题.
我有多个jplayers,每个玩家都想要播放自己的音频文件.但它并没有这样做,如果我玩一个jplayer,然后所有的jplayers播放,所有播放来自所选jplayers的一个音频文件.事实上,如果我在一个jplayer中使用控件,它也会控制所有其他jplayers.
所以我试图实现一个多实例jplayers,其信息来自于:
http://www.jplayer.org/latest/demo-03/
但我真的很难实现这个,所以我的问题是有人可以帮助我完成这个实现,以便jplayers工作应该做,而jplayer只控制自己的播放器而不影响其他jplayers?
下面是我目前的javascript代码(查看源代码):
<script type="text/javascript">
$(document).ready(function(){
$("#jquery_jplayer_1-72-0").jPlayer({
ready: function () {
$(this).jPlayer("setMedia", {
mp3: "AudioFiles/Kalimba.mp3"
});
},
play: function() { // To avoid both jPlayers playing together.
$(this).jPlayer("pauseOthers");
},
solution:"flash,html",
swfPath: "jquery",
supplied: "mp3"
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
更新:
实际代码:
如果没有音频文件,则为每个音频文件显示空白,显示音频播放器.我也包括了html控件,不确定是否需要,但发布它以防万一
//start:procedure audio
$aud_result = '';
if(empty($arrAudioFile[$key])){
$aud_result = ' ';
}else{
$j = 0;
foreach ($arrAudioFile[$key] as $a) {
$info = pathinfo('AudioFiles/'.$a);
?>
<script type="text/javascript">
$(document).ready(function(){
$("#jquery_jplayer_1-<?php echo $key.'-'.$j; ?>").jPlayer({
ready: function () {
$(this).jPlayer("setMedia", {
<?php echo $info['extension'];?>: "<?php echo "AudioFiles/".$a; ?>"
});
$(this).bind($.jPlayer.event.play, function() {
$(this).jPlayer("pauseOthers");
});
},
solution:"flash,html",
swfPath: "jquery",
supplied: "<?php echo $info['extension'];?>"
});
});
</script>
<div id="jquery_jplayer_1-<?php echo $key.'-'.$j; ?>" class="jp-jplayer"></div>
<div id="jp_container_1" class="jp-audio">
<div class="jp-type-single">
<div class="jp-gui jp-interface">
<ul class="jp-controls">
<li><a href="javascript:;" class="jp-play" tabindex="1">play</a></li>
<li><a href="javascript:;" class="jp-pause" tabindex="1">pause</a></li>
<li><a href="javascript:;" class="jp-stop" tabindex="1">stop</a></li>
<li><a href="javascript:;" class="jp-mute" tabindex="1" title="mute">mute</a></li>
<li><a href="javascript:;" class="jp-unmute" tabindex="1" title="unmute">unmute</a></li>
<li><a href="javascript:;" class="jp-volume-max" tabindex="1" title="max volume">max volume</a></li>
</ul>
<div class="jp-progress">
<div class="jp-seek-bar">
<div class="jp-play-bar"></div>
</div>
</div>
<div class="jp-volume-bar">
<div class="jp-volume-bar-value"></div>
</div>
<div class="jp-time-holder">
<div class="jp-current-time"></div>
<div class="jp-duration"></div>
<ul class="jp-toggles">
<li><a href="javascript:;" class="jp-repeat" tabindex="1" title="repeat">repeat</a></li>
<li><a href="javascript:;" class="jp-repeat-off" tabindex="1" title="repeat off">repeat off</a></li>
</ul>
</div>
</div>
</div>
</div>
<?php $j++;
}
}
//end:procedure audio
?>
Run Code Online (Sandbox Code Playgroud)
你可以创建一个function并传递这样的参数(file and player id)来在同一页面上创建不同的玩家而不会产生任何冲突:
function js_audioPlayer(file,location) {
jQuery("#jquery_jplayer_" + location).jPlayer( {
ready: function () {
jQuery(this).jPlayer("setMedia", {
mp3: file
});
},
cssSelectorAncestor: "#jp_interface_" + location,
swfPath: "/swf"
});
return;
}
Run Code Online (Sandbox Code Playgroud)
在此示例中,文件和位置变量被传递到包装函数,然后构造播放器.
然后js_audioPlayer()像你想要的那样多次运行javascript函数:
js_audioPlayer('file1.mp3',1); //Player 1
js_audioPlayer('file2.mp3',2); //Player 2
js_audioPlayer('file3.mp3',3); //Player 3
Run Code Online (Sandbox Code Playgroud)
使用ID创建Player DIV:
jquery_jplayer_1
jquery_jplayer_2
jquery_jplayer_3
Run Code Online (Sandbox Code Playgroud)
和具有ID的接口DIV:
jp_interface_1
jp_interface_2
jp_interface_3
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
有关更多详细信息,请访问:http://www.nightbluefruit.com/blog/2011/08/multiple-jplayers-on-the-same-page/
| 归档时间: |
|
| 查看次数: |
5702 次 |
| 最近记录: |