2012-06-18 136 views
0

這樣的IM使用playframework 2.0,我在服務器上使用下面的代碼成功流式音頻:playframework 2.0音頻流

public static Result recording() { 
    File wavFile = new File("C:\\test.wav"); 
    return ok(wavFile); 
} 

這工作得很好。

我遇到的問題是它更改爲新頁面。我希望它可能會打開一個小對話框,或者創建一個新的周邊div。 所以我想我必須創建一個ajax請求,並且我可以創建一個新的div,但我不知道如何處理成功的數據對象。任何例子是真正有用的我還沒有能夠找到任何:

$('#sound').click(function(evt) { 
      $.ajax({ 
       type: 'POST', 
       url: jQuery("#sound").attr("href"), 
       data: jQuery("#sound").serialize(), 
       dataType: "json", 
       success: function(data) { 
          //What do i need to do here 
        alert('Call history download'); 
       }, 
       error: function(data) { 
        setError('Call history download failed'); 
       } 
      }); 
      return false; 
     }); 

回答

2

退房的html5 <audio> tag

像這樣的東西應該做的伎倆:

<audio src="@routes.MyController.recording()" controls autoplay loop> 
    <p>Your browser does not support the audio element </p> 
</audio> 

如果你想開始使用JavaScript的聲音,你可以跳過所有的AJAX的東西,只是使用JavaScript/jQuery的添加元素。然後聲音應該自動啓動。

請注意,該波形文件不支持IE(圖!!)。 IE 9只支持MP3。但是Firefox和Opera不支持MP3。支持多種文件格式,你可以做這樣的事情:

<audio controls autoplay loop> 
    <source src="@routes.MyController.recordingWave()" type="audio/wave" /> 
    <source src="@routes.MyController.recordingMp3()" type="audio/mp3" /> 
    <p>Your browser does not support the audio element </p> 
</audio> 
+0

好了,所以最後我用你給我的音頻標籤,它工作得很好的Chrome,但在Firefox會顯示不出來。 – user1434177

+1

它應該在Firefox中工作!您可能必須提供嚴重的音頻格式,因爲瀏覽器不同意支持哪種格式。我在MDN上找到了這個瀏覽器兼容性表格:https://developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements#section_6 – aaberg