MP4 ファイルをサーバーに直接配置し、それを Google Chrome で開くと、ブラウザはデフォルトでオンライン表示になります。
しかし、多くの場合、ファイルはそのままでは保存されません。php を使用して mp4 ファイルを出力すると、長時間試した後、ブラウザはそれをオンラインで再生しようとするのではなく、ファイルとして直接ダウンロードします。
最初はオフライン ダウンロードをサポートする必要があると考え、それを変更しましたが、ブラウザのデフォルトでは依然としてファイルとして直接ダウンロードが機能しませんでした。
長い間私を悩ませてきたこの問題を解決できる人はいないだろうか。 。
スクリプトに HTML コードを記述し、html5 の video タグを使用して再生の問題を解決します
php スクリプトに HTML コードを記述し、html5 の video タグを使用して再生の問題を解決します
この問題は解決しました。コードは次のとおりです。
<?phpfunction PutMovie($file) { header("Content-type: video/mp4"); header("Accept-Ranges: bytes"); $size = filesize($file); if(isset($_SERVER['HTTP_RANGE'])){ header("HTTP/1.1 206 Partial Content"); list($name, $range) = explode("=", $_SERVER['HTTP_RANGE']); list($begin, $end) =explode("-", $range); if($end == 0) $end = $size - 1; } else { $begin = 0; $end = $size - 1; } header("Content-Length: " . ($end - $begin + 1)); header("Content-Disposition: filename=".basename($file)); header("Content-Range: bytes ".$begin."-".$end."/".$size); $fp = fopen($file, 'rb'); fseek($fp, $begin); while(!feof($fp)) { $p = min(1024, $end - $begin + 1); $begin += $p; echo fread($fp, $p); } fclose($fp);}putfile("1.mp4");?>