我目前有一个用jquery构建的mp3播放器。我想知道是否有更快的方式我可以获取mp3文件并将其播放给用户,或“流”它,就像潘多拉一样。这就是我获取歌曲数据的方式:
song = document.createElement('audio');
source = document.createElement("source");
song.appendChild(source);
source.setAttribute("type", "audio/mpeg");
source.src = "getMp3.php";
getMp3.php文件如下所示:
$fileName = "Song.mp3";
$file = "/Music/".$fileName;
$mime_type = "audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3";
$shortlen = filesize($file)-1;
$fp = fopen($file, 'r');
$etag = md5(serialize(fstat($fp)));
fclose($fp);
header("Pragma: public");
header("Expires: 0");
header('Cache-Control: no-cache, no-store');
header("Content-Transfer-Encoding: binary");
header('Content-type: '.$mime_type);
header('Accept-Ranges: bytes');
header('Connection: Keep-Alive');
header('Content-length: ' . filesize($file));
header('Content-Disposition: inline; filename="' . $fileName);
header('X-Pad: avoid browser bug');
header('Content-Range: bytes 0-'.$shortlen.'/'.filesize($file));
header('Etag: '.$etag);
readfile($file);
大多数情况下,加载文件大约需要10秒钟。这可能会更长,具体取决于文件的大小,但10通常是平均值。我也试过只发送部分mp3文件,但即使mp3是10秒或3分钟,它仍然需要大约10秒。有没有办法加快/播放这首歌?
答案 0 :(得分:0)
PHP脚本将在加载整个音乐文件后显示页面,因此费用很高。
要在网络上播放音乐,有两种方法可以做到:
Flash播放器:Google提供数千种JavaScript / jQuery音乐播放器。
HTML 5 <audio>
代码:<audio src="song.mp3" controls="controls"/>