2013-04-17 27 views
5

要素で再生するために.wavファイルのヘッダーを作成する必要があります。.wavファイルのダウンロード用PHPヘッダーが埋め込みで再生できません

$filename = basename($_GET['file']); 

$pos = strrpos($file, '.'); 

$extension = ($pos !== false) ? substr($file, $pos) : ''; 

$mime_type = ""; 
switch ($extension) { 
    case '.mp3': 
     $mime_type = "audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3"; 
     break; 
    case '.ulaw': 
     $mime_type = "audio/basic"; 
     break; 
    case '.gsm': 
     $mime_type = "audio/x-gsm"; 
     break; 
    case '.wav': 
     $mime_type = "audio/x-wav, audio/wav"; 
     break; 
} 

if(file_exists($filename)){ 
    $handle = fopen($filename, "rb"); 

    header('Content-Description: File Transfer'); 
    header("Content-Transfer-Encoding: binary"); 
    header('Content-Type: '.$mime_type); 
    header('Content-length: ' . filesize($filename)); 
    header('Content-Disposition: attachment;filename="' . $filename.'"'); 

    while (!feof($handle)) { 
     echo fread($handle, 4096); 
     flush(); 
    } 
    fclose($handle); 
}else{ 
    header("HTTP/1.0 404 Not Found"); 
} 

これは私がそのページに行くときに、ファイルのダウンロードと作品(私が何をしたいの半分)、今のwww.example.com/listen?file=Test.en.wav

によって呼び出されたが、私がしようとするとされています

<embed src="www.example.com/listen?file=Test.en.wav"> 

プレーヤーは表示されますが、ファイルは再生できません。

編集:私はそれを再生する方法が可能かどうか知りたいですか?

+0

を設定しますか?エコーはファイルの内容を表示するだけですが、どのように.wavを再生するのですか? – Wookie88

+0

申し訳ありませんが、私の質問はあまり具体的ではありませんでした。私が知りたいのは、もし可能であれば、ファイルを再生する方法です。ありがとうございました! – Benoit

+0

こんにちは、私はこの意図的ではなく 'echo fread($ handle、4096);'がファイルの最初の4mBを表示するかどうかわかりません... – user1909426

答えて

0

Try audio/vnd.waveRFC 2361

パー

また唯一の代わりにコンマ区切りのリストの要求ごとに単一のMIMEタイプを指定してみてください。

case '.mp3': 
    $mime_type = "audio/mpeg"; 

あなたはおそらく、あなたのブラウザーで直接これらを再生するためにQuicktimeのようなものをインストールする必要があります。いくつかのブラウザは、MIMEタイプを修正するためにコンテンツ[MIME]を盗聴しようとします。

+0

If私はmpegのために1つのMIMEを使用します、彼らはFirefoxで再生を停止します.WAVはまだFirefoxで再生したいですが、彼らはクロムで動作します。ありがとうございました – Benoit

0

他のヘッダを削除し、ちょうどあなたが上記の全プレーヤーのコードを掲載している "のContent-Type" ヘッダ

header('Content-Type: '.$mime_type); 
関連する問題