ホームページ  >  記事  >  バックエンド開発  >  Googleブラウザで直接再生できるmp4ファイルをphpで出力する方法

Googleブラウザで直接再生できるmp4ファイルをphpで出力する方法

WBOY
WBOYオリジナル
2016-06-20 12:36:282198ブラウズ

MP4 ファイルをサーバーに直接配置し、それを Google Chrome で開くと、ブラウザはデフォルトでオンライン表示になります。
しかし、多くの場合、ファイルはそのままでは保存されません。php を使用して mp4 ファイルを出力すると、長時間試した後、ブラウザはそれをオンラインで再生しようとするのではなく、ファイルとして直接ダウンロードします。
最初はオフライン ダウンロードをサポートする必要があると考え、それを変更しましたが、ブラウザのデフォルトでは依然としてファイルとして直接ダウンロードが機能しませんでした。
長い間私を悩ませてきたこの問題を解決できる人はいないだろうか。 。


php のディスカッション (解決策) への返信

スクリプトに 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");?>

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。