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;
        });
4

1 回答 1

2

查看html5 <audio> 标签

这样的事情应该可以解决问题:

<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>
于 2012-06-18T08:43:31.490 回答