0

mediaelement.js を使用して php からビデオを読み込もうとしていますが、機能していません..「ファイルのダウンロード」と表示されます

<video src="http://localhost/readmp4.php?id=111" width="640" height="360" id="player2" controls="controls">
<source type="video/mp4" src="http://localhost/readmp4.php?id=111" />
</video>
<script>
$('video').mediaelementplayer({});
</script>
4

2 に答える 2

-2
  1. たとえば、phpリクエストURLの代わりにmp4をパスとしてカモフラージュしてください<video src=/junk/junk.mp4> instead of <video src=video.php?name=junk>

  2. ユーザーが特定の場所に保護されたビデオ ファイルを読み取る php ファイルへのパス ルートを要求すると、php ファイルへの htaccess ルートを実行します。例えば ​​...

RewriteRule ^junk/(.*) /preview.php?media=$1 [QSA,L]

  1. 今phpで、サファリ(iPad / iPhone)リクエストにも対応してください...

    <?php
    class VideoGroup1 {
       public function preview() { 
           $id = substr($_REQUEST['media'],0,strrpos($_REQUEST['media'],"."));
           $thisMedia = Pillar_Manage_Media::fetchMedia($id);
           //echo Foundry_Useful::unsealit($thisMedia['path']).$thisMedia['mediaid'];
           $file = Foundry_Useful::unsealit($thisMedia['path']).$thisMedia['mediaid'].".mp4";
           $filesize = filesize($file);
    
           $offset = 0;
           $length = $filesize;
    
           if ( isset($_SERVER['HTTP_RANGE']) ) {
    
    
               $partialContent = true;
    
    
               preg_match('/bytes=(\d+)-(\d+)?/', $_SERVER['HTTP_RANGE'], $matches);
    
               $offset = intval($matches[1]);
               $length = intval($matches[2]) - $offset;
           } else {
               $partialContent = false;
           }
    
           $file = fopen($file, 'r');
    
    
           fseek($file, $offset);
    
           $data = fread($file, $length);
    
           fclose($file);
    
           if ( $partialContent ) {
    
    
               header('HTTP/1.1 206 Partial Content');
    
               header('Content-Range: bytes ' . $offset . '-' . ($offset + $length) . '/' . $filesize);
           }
    
    
           header('Content-Type: video/mp4');
           header('Content-Length: ' . $filesize);
           header('Content-Disposition: attachment; filename="' . $file . '"');
           header('Accept-Ranges: bytes');
    
           print($data);
    
       }//End Function preview
    
    
    }//END Class VideoGroup1
    
于 2012-07-02T07:26:05.243 に答える