我使用下面的PHP類文本轉換爲語音:http://www.masnun.me/2009/12/14/googles-text-to-speech-api-a-php-wrapper-class.html流MP3瀏覽器,而不是將數據保存爲文件
它使用谷歌的API,而現在的代碼將文件保存在本地,但是我希望它強制將文件流式傳輸到用戶的瀏覽器。這是我想出的:
function saveToFile($filename) {
$filename = trim($filename);
if(!empty($filename)) {
header("Content-type: application/octet-stream");
header('Content-length: ' . filesize($this->mp3data));
header('Content-Disposition: filename="' . $filename);
header('X-Pad: avoid browser bug');
header('Cache-Control: no-cache');
readfile($this->mp3data);
} else { return false; }
}
但生成的文件是0kb空mp3文件。我究竟做錯了什麼?
是'$ this-> mp3data'是否爲空? Content-length頭中有什麼? – Asaph
$ this-> mp3data是你從google的api獲得的,它是一個mp3文件。 –
注意:'$ this-> mp3data'包含文件的內容,而不是文件的url。現在我怎樣才能將這個流式傳輸給用戶作爲mp3文件? –