java filereader blob_如何从javascript发送音频blob到java spring服务...

本文探讨了如何使用RecordRTC录制音频并通过WebSockets将Blob数据传输至Spring Boot服务器的问题。作者分享了从Blob到ArrayBuffer的转换过程,并讨论了在服务器端接收到的数据不完整的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我正在使用RecordRTC在我的javascript客户端录制一些音频数据.我想通过WebSockets将这个音频数据发送到我的Spring RestController.

录制后我在我的javascript客户端中有一个blob对象:Blob {size:65859,type:“audio / webm”}

我尝试使用FileReader将此blob转换为ArrayBuffer对象,看起来像这个ArrayBuffer {} byteLength:65859

我发送ArrayBuffer的javascript代码如下所示:

const reader = new FileReader();

reader.addEventListener( 'loadend', () => {

console.log( 'readerResult', reader.result );

this.stompClient.send( "/app/hello", {}, reader.result );

} );

this.recorder.stopRecording(() => {

const blob = this.recorder.getBlob();

reader.readAsArrayBuffer( blob );

console.log( "blob", blob );

} );

我的Spring Boot应用程序中的WebSocket端点如下所示:

@MessageMapping("/hello")

public void stream(byte[] input) throws Exception {

System.out.println("incoming message ...");

System.out.println(input);

System.out.println(input.length);

}

这是控制台输出:

incoming message ...

[B@6142acb4

20

我的服务器中的bytearray只包含20个字节,看起来只有元数据被传输?

如何将录制的Blob传输到我的Spring服务器并创建它的(webm)文件?我是否必须更改端点的参数?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值