2017-12-27 5 views
0

それを再生する方法:Javascriptを:更新されたオーディオファイルをロードし、私は1つのオーディオファイルを再生しようとしていますし、これまでのところ、私はでそれを行うことができるよ

a = new Audio("audio.mp3"); 
a.load(); 
a.play(); 

しかし、私が何をしようとしています何を演奏した後、私は同じ名前の新しいオーディオファイルを作成しています。もう一度ボタンをクリックしてこの機能を実行してオーディオを再生すると、新しいファイルではなく前のファイルの出力が再生されます。どのように新しいオーディオが生成されるように同じ名前で同じファイルを再アップロードすることができますか?

おかげ

+0

(または単にタイムアウト秒を上げる)オーディオファイルがおそらくキャッシュされているあなたは再びそれをロードするときに、それはよキャッシュされたバージョンを使用します。ページを更新するか、強制的にダウンロードし直してください。 –

答えて

1

あなたはそれがブラウザが二つのファイルが同じであると仮定し、同じ名前なので、理由は、ブラウザのキャッシュの同じオーディオファイルを得続ける理由。これを防ぐために、ランダムなクエリ文字列をファイル名に追加して、毎回新しいファイルがあるとブラウザが判断するようにすることができます。しかし、これの欠点は、ユーザーが毎回オーディオファイルをダウンロードする必要があることです。これにより、ユーザーの読み込み時間が遅くなる可能性があります。

a = new Audio("audio.mp3?random=" + new Date().getTime()); 
a.load(); 
a.play(); 

あなたがあなたの代わりにランダムな日時の日時を追加することができ、アップロードの時間へのアクセス権を持っている場合は、少なくとも一回のみアップロードごとのファイルをダウンロードするには、ブラウザを強制します。

a = new Audio("audio.mp3?random=" + uploadDate.getTime()); 
a.load(); 
a.play(); 
0

(同じオブジェクトに、別の名前でも、多分か)同じ名前の別のファイルをロードする場合は、あなたが以前のオブジェクトを削除する必要があります! 10秒のためにそれを果たしているa.mp3

a = new Audio('a.mp3'); 
    a.load(); 
    a.play(); 
    setTimeout(function(){a.pause();a.remove();a.load('a.mp3');a.play();},10000); 

上記のコードのロード: a.remove()は、トリックを行います。 10秒後に再びa.mp3が読み込まれ、そのファイル内にコンテンツが存在します。

あなたは10秒で、同じ名前のオーディオファイルを置き換えるために十分高速である必要があります:D

関連する問題