JW Player 5.7 を使用してクライアントの Web サイトでオーディオ mp3 ファイルを 1 年以上問題なく再生しています。私のクライアントは、音声が再生されていないという電話を受けました。Chrome (v28)、Safari (v5 および v6)、IE9 で音声が再生されなくなりました。Firefox (v23) と同じように動作します。クライアントも私も通常 Firefox を使用しているため、いつ機能しなくなったのかわかりません。それがブラウザに関係しているのか、それとも何か他のものに関係しているのかはわかりません。
際立っていることの 1 つは、開発者ツールを使用すると、コンテンツ タイプ ヘッダーが Firefox (audio/mpeg3) では正しいように見えますが、Chrome、Safari、および IE9 では「text/html」に設定されていることです。
問題を確認できる Web ページへのリンクは次のとおりです: http://www.thebuzzmusiclibrary.com/music/display_album/20
この構成を少しユニークにするいくつかのこと:
jwplayer コードは動的に読み込まれます。つまり、ユーザーが「矢印」アイコンの 1 つをクリックすると、「autostart」が true に設定されているため、jwplayer コードが JavaScript を介して読み込まれ、再生が開始されます。
mp3 ファイルはディレクトリ ルートの上にあるため、「file」パラメータは、実際にファイルをダウンロードする PHP 関数です。
動的に読み込まれるコードは次のとおりです。
<div id="mediaplayer">This text will be replaced</div>
<script type="text/javascript">
jwplayer("mediaplayer").setup({
"file": "' + file + '",
"controlbar": "bottom",
"width": "220",
"height": "24",
"provider": "sound",
"autostart": "true",
"bufferlength": "2",
"modes": [ {type: "flash", src: "/js/player-licensed-5.7.swf"}, {type: "html5"}, {type: "download"} ]
});
mp3 ファイルをダウンロードする PHP スクリプトの主要部分は次のとおりです ($mime は 'audio/mpeg3' です)。
header('Content-Type: '.$mime);
header('Content-Disposition: attachment; filename="'.$name.'"');
header('Content-Description: File Transfer');
header('Content-Length: '.$info['size']);
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
while( ! feof($file))
{
echo fread($file, 2048);
}
static::close_file($file, $area);
exit;