即时通讯正在做的事情是通过websockets将mp3数据作为base64字符串发送并在浏览器端对其进行解码,即时通讯现在正在尝试将原始数据转换为blob并在音频标签中播放,但我不知道您如何提供帮助还可以解码base64字符串比较滞后
JAVASCRIPT
Caused by: org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [SELECT JOB_INSTANCE_ID, JOB_NAME from BATCH_JOB_INSTANCE where JOB_NAME = ? order by JOB_INSTANCE_ID desc]; nested exception is org.postgresql.util.PSQLException: ERROR: relation "batch_job_instance" does not exist
Position: 39
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:234) ~[spring-jdbc-5.0.8.RELEASE.jar:5.0.8.RELEASE]
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72) ~[spring-jdbc-5.0.8.RELEASE.jar:5.0.8.RELEASE]
at org.springframework.jdbc.core.JdbcTemplate.translateException(JdbcTemplate.java:1402) ~[spring-jdbc-5.0.8.RELEASE.jar:5.0.8.RELEASE]
答案 0 :(得分:0)
您可以尝试使用Web Audio API中的Audiocontext
。将AudioContext.createBuffer()
用于原始数据,然后可以将其传递到AudioBufferSourceNode
中进行播放。您还可以使用decodeAudioData()
方法来使用音频文件。
答案 1 :(得分:0)
您无需将其转换为raw。 HTML5音频已经支持base64作为URL:
<audio controls src="data:audio/mp3;base64, ...
答案 2 :(得分:0)
不确定“ js.buffer”是哪种数据?但是,如果已经对base64进行了编码,则可以像@Ashraf一样将其前缀为:
var audio = document.getElementById("audio");
audio.type = AudioType;
audio.src = "data:audio/mpeg;base64," + js.buffer;
// audio.src = "data:" + AudioType + ";base64," + js.buffer;
仅供参考:现代浏览器具有内置的base64编码/解码功能。
Use:
atob() - decode base64
btoa() - encode base64