2014-11-14 133 views
0

在我的网站上,用户可以上传视频。 我将这些视频存储在一个文件夹中,并将它们的路径存储在mysql数据库中。无法在PHP中显示视频

我想从文件夹中检索该视频并在页面上显示。 该文件夹还包含图像。 我也显示图像。 图像正在显示。视频只播放音频,而不播放视频。而且,我的数据库中只有两个视频和一个图像。然后还有3个视频文件和3个图像正在显示,从中可以显示两个图像,并显示替代文字。

以下是我在PHP试图代码:

if ($db_found) 
{ 
    $query ="SELECT * FROM `files`";   
    $result = mysql_query($query,$db_handle); 
    echo "<div class='product'>"; 
    while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
    { 
     $src=$row['File']; 
     echo "<img src='$src' height='200' width='200' alt='Image not Found'/>"; 
     echo "<video width='200' height='200' autoplay controls> 
       <source src='$src' type='video/mp4'> 
       </video>"; 
    } 
    echo "</div>"; 
} 
+0

你怎么知道你的视频编码正确? – 2014-11-14 17:00:48

+2

您正在使用视频和图像的** SAME ** src。究竟你如何期待''工作?图像不是视频。 – 2014-11-14 17:00:55

+0

这听起来不像php的问题。您的浏览器支持html5视频标签,或者与文件本身或存储视频的服务器相关,这是一个问题。 – 2014-11-14 17:01:36

回答

0

您需要检查哪些是视频的,哪些是使用类似图片:

$src=$row['File']; 

     if (preg_match("/\.jpg$/i",$src)){ 

      echo "<img src='$src' height='200' width='200' alt='Image not Found'/>"; 

     }else{ 

      echo "<video width='200' height='200' autoplay controls> <source src='$src' type='video/mp4'> </video>"; 

     } 

编辑

哦并请停止使用已弃用的mysql functions

选择更现代的方法连接到分区

+0

感谢它的工作,但不完全。它只播放音频,而不是视频。 – 2014-11-14 17:14:52

+0

正如其他人所说,检查视频编码,您可以通过直接在html5浏览器中打开视频文件来测试 – andrew 2014-11-14 17:16:01

0

你真的应该添加(至少)某种方式来分离您的视频和图像。例如,files表中的第二列会告诉您所讨论的文件是否为视频或图像。

然后,你可以简单地做这样的事情:

SELECT * FROM `files` WHERE `filetype` == 1 

,其中1 =图像,2 =视频等

然后,你可以简单地请处理该数组作为你:

<?php 
foreach($images as $image) { ?> 
    <img src='<?= $image["src" ?>' alt=''> 
<?php } ?> 

而且

<?php 
foreach($videos as $video) { ?> 
    <video id="video" preload="auto" autoplay="autoplay"> 
    <source src="<?= $video["src"] ?>.mp4"> 
    </video> 
<?php } ?> 

注意:只有音频在您的视频中播放与您的代码没有任何关系。