通过onclick将url传递给flowplayer

时间:2012-01-28 21:45:36

标签: jquery html flowplayer

我有一个从数据库构建的表。循环创建一行:

<tr >
   <td onclick="DoNav('<?php echo $result_videos[$i]["video_url"]; ?>');">
    <?php echo $result_videos[$i]["camera_name"]; ?> 
   </td>
   <td onclick="DoNav('<?php echo $result_videos[$i]["video_url"]; ?>');">
    <?php echo setlocalTime($result_videos[$i]["video_datetime"]); ?> 
   </td>
....
</tr>

当用户点击表格中的某一行时,它会将其发送到DoNav功能以启动流程图:     var js = jQuery.noConflict();     功能DoNav(theUrl)     {     // flowplayer(“播放器”,“flowplayer / flowplayer-3.2.7.swf”,theUrl);     var mydiv = js(“#player”);     var $ myhref = js(“”);     mydiv.append($ myhref);     }

我尝试将播放器构建为href。它必须是一个href,而不是像评论行(我之前使用过,它可以工作,但对iOS支持没有帮助)

以下是我之前使用过的div以及最终对bodyplayer的调用:

<div id="player" style="display:block;width:320px;height:240px;background-image:url(images/videoPlaceHolder01.JPG)"></div>
<script language="JavaScript">
flowplayer("player", "flowplayer/flowplayer-3.2.7.swf");
</script>

单击行不再执行任何操作,我看不到任何错误。很确定我正在将行为与div和href混合用于流媒体,这是不对的。事实上,我在这里混合太多东西,并想知道是否有更简单的方法来创建onclick事件,然后在继续这条疯狂的道路之前启动流动播放器。注意我确实要保留启动图像。

2 个答案:

答案 0 :(得分:0)

我不确定这是否可能是问题,但你错过了这一行的双引号:

var $myhref = js("<a href=" + theUrl + " id=player></a>");

您应修改如下:

var $myhref = js("<a href=\"" + theUrl + "\" id=\"player\"></a>");

答案 1 :(得分:0)

看看这个解决方案。

http://jsfiddle.net/SAZd4/

首先,我将视频网址存储在html5数据结构中。这是data-videourl。然后,您可以使用jQuery的数据方法检索此值。然后我监视td的click事件以获取url并构造包含必要参数的jQuery链接对象。最后,您必须使用流程代码实例化播放器。

<table>
    <tr >
       <td class="video" data-videourl="http://pseudo01.hddn.com/vod/demo.flowplayervod/flowplayer-700.flv">Video X</td>
    </tr>
</table>

$('td.video').click(function() {
    //get video url from data-videourl html5 param
    var videourl = $(this).data('videourl');

    //create a link tag to contain the video
    var $video = $('<a />', {
        href: videourl,
        id: 'player'
    });

    //append link to page
    $('body').append($video);

    //instantiate flowplayer on new video object
    flowplayer("player", "http://releases.flowplayer.org/swf/flowplayer-3.2.7.swf", {
        clip: {

            // these two configuration variables does the trick
            autoPlay: true,
            autoBuffering: true // <- do not place a comma here  
        }
    });
});