2011-07-19 15 views
0

私は自分のオーディオファイルを復号化しましたが、今は再生してリンクを解除したいと思っています。 は、私が現在持っているもの:オーディオファイルを再生するにはどのようなヘッダが必要ですか

<?php 
    $destination = "/tmp_upload_dir_copy/test.mp3" 
    header('Content-Type: audio/mpeg'); 
    readfile($destination); 
    unlink($destination); 
?> 

誰もが私が間違ってやっているか、私は他に何が必要か何任意のアイデアがありますか?

多分私はfpassthru()を使う必要がありますか?

+1

何が問題ですか? –

+0

クライアントまたはサーバーで再生しますか? – ianbarker

+1

クライアント側にプレーヤーアプリが必要です。少なくとも、mp3を自動再生するプラグインを持っているブラウザが必要です。 –

答えて

0

mp3をダウンロードして実際にそれを再生するまでの間に、ユーザーの間違いが起こる可能性があるので、ファイルをすぐに削除したくないようなサウンドです。多くの場合、ユーザーはファイル転送を再度開始する必要があります。代わりに、毎晩実行されるcronジョブを設定し、1日以上経過したmp3ファイルを削除することができます。 (また、オーディオファイルを「解読」することによって、あなたが何を意味するのか分かりません)。

+0

ありがとうございました。 これは解決策のようにハッキングが多すぎるかもしれないと思っていましたが、私はそれについてもっと考えると、もっと唯一の方法だと思います。 – richie

+0

あなたの質問にも答えてください。私が達成しようとしていたのは、サーバー上にオーディオファイルを安全に保持する機能でした。これは、ファイルを暗号化する必要があることを意味し、ファイルを再生するときに復号化する必要があります。これは、再生されたファイルを削除するという問題につながります。その答えが私の唯一の解決策となります。他の唯一の解決策は、ユーザーに暗号化/復号化する能力を与え、ファイルが少なくても再生できないという条件を解読することです。しかし、この解決策は仕様に反します – richie

1

PHPはサーバー側でのみ動作します。そのファイルがクライアントに対して送信されたものであることを保証することはできますが、それがクライアントによって再生されたことを直接確認する方法はありません。

ヘッダーを設定すると、ブラウザがデータをどのように処理するかが決まります(この場合、ブラウザにデータがオーディオであることが通知されます)。たとえば、Chromeはオーディオファイルを再生しますが、一部のブラウザではユーザーにダウンロードのプロンプトが表示されることがあります。

オーディオファイルを再生するページに埋め込むオーディオ再生コンポーネント(「Flash MP3プレーヤー」を検索)のようなクライアント側のソフトウェアが必要です。

関連する問題