0

次のphpクラスを使用してテキストを音声に変換しています: http://www.masnun.me/2009/12/14/googles-text-to-speech-api-a-php-wrapper-class.html

Googleの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 ファイルです。私は何を間違っていますか?

4

2 に答える 2

2

readfile()ファイルの内容ではなく、ファイル名をパラメーターとして受け入れます。readfile行を次のように置き換えてみてください。

echo $this->mp3data;
于 2012-05-14T22:48:32.647 に答える
1

readfile実際にブラウザにエコーしますか?何かを返すだけの場合は、期待どおりに機能しません。

echo readfile($this->mp3data);

また、readfileがパスで機能することも理解しています。その場合は、次のことを試してください。

echo $this->mp3data;
于 2012-05-14T22:47:19.043 に答える