0

ここに、基本的なjqueryスライダーでjwplayerを使用しているアプリケーションがあります:APPLICATION

基本的なjqueryスライダーの情報はこちら: http: //basic-slider.com/

これが私が見つけたものです。スライダーに複数のビデオが含まれている場合はスライダーが表示されますが、スライダーにビデオが1つしかない場合は、ビデオやスライダーは表示されません。

奇妙なことに、ビデオを画像に置き換えると、スライダーは表示されないが画像が表示されるため、単一の画像でも機能します。これは問題ありません。しかし、私の質問は、ビデオに対して同じことをどのように行うかです。

これが画像付きスライダーのデモです:アプリケーション

以下は、ビデオとスライダーのコードです。

     $vidquery = "SELECT s.SessionId, q.QuestionId, v.VideoId, VideoFile
                FROM Session s
                INNER JOIN Question q ON s.SessionId = q.SessionId
                INNER JOIN Video_Question vq ON q.QuestionId = vq.QuestionId
                INNER JOIN Video v ON vq.VideoId = v.VideoId
                WHERE s.SessionId = ?";

    $vidqrystmt=$mysqli->prepare($vidquery);
    // You only need to call bind_param once
    $vidqrystmt->bind_param("i",$session);
    // get result and assign variables (prefix with db)
    $vidqrystmt->execute(); 
    $vidqrystmt->bind_result($vidSessionId,$vidQuestionId,$vidVideoId,$vidVideoFile);

        $arrVideoFile = array();

    while ($vidqrystmt->fetch()) {
    $arrVideoFile[ $vidQuestionId ][] = basename($vidVideoFile);
  }

    $vidqrystmt->close(); 


?>
<form action='results.php' method='post' id='exam'>


<?php
                //start:procedure video
        $vid_result = '';
        if(empty($arrVideoFile[$key])){
          $vid_result = '&nbsp;';
        }else{

            ?>


 <div id="banner-video_<?php echo $key; ?>">
 <ul class="bjqs">
<?php
$i = 0;
foreach ($arrVideoFile[$key] as $v) { ?>
<li><div id="myElement-<?php echo $key.'-'.$i; ?>">Loading the player...

<script type="text/javascript">


jwplayer("myElement-<?php echo $key.'-'.$i; ?>").setup({
    file: "<?php echo 'VideoFiles/'.$v; ?>",
    width: 480,
    height: 270
});

<?php $i++; ?>
</script>

</div>
</li>
<?php } ?>
</ul>
</div>

         <script type="text/javascript">

jQuery(document).ready(function($) {

         $('#banner-video_<?php echo $key; ?>').bjqs({
            animtype      : 'slide',
            height        : 300,
            width         : 700,
            responsive    : true,
            randomstart   : false,
            automatic : false
          });  
          });

          </script>

<?php

        }
        //end:procedure video
?>

</div>



</form>

アップデート:

誰かがそれをコーディングする方法を知っていて、単一のビデオかどうかを検出できる場合は、スライダーに配置しないでください。これで解決できると思います。

4

1 に答える 1

1

私が言っているのは、あなたの例では、すべてのスライダーが画像またはビデオをスライドさせて次または前を表示しているように見えるということですが、項目が 1 つしかない場合は、すべてを完全にスキップしないでください。

あなたは配列を持っています:$arrVideoFile

を使用count($arrVideoFile);して、配列内の合計値を取得できます。

そう

if(count($arrVideoFile) != 0 || $arrVideoFile) != 1)
{
    //do the stuff you pasted above
}

else
{
    //if(array == 0) maybe show a default image

    //if(array == 1) lets just show that
        //if image show <img> if video show <object> or in your case 
        //<div id="myElement-<?php echo $key.'-0'; ?>"></div>
}

これが役立つかどうか教えてください

于 2013-02-12T07:17:43.737 に答える