如何在 Web 中播放来自 Android 的原始样本PCM_16音频数据记录(使用网络音频或其他)
How can i play raw samples PCM_16 audio data record from Android in Web (using Web-Audio or other)?
在Android上的应用程序中,我使用AudioRecord并连续发送字节数组PCM_16到Node.js服务器。
byte[] audioBuffer = new byte[mAudioBufferSampleSize];
mAudioRecord.startRecording();
int audioRecordingState = mAudioRecord.getRecordingState();
if (audioRecordingState != AudioRecord.RECORDSTATE_RECORDING) {
Log.e(TAG, "AudioRecord is not recording");
return;
} else {
Log.v(TAG, "AudioRecord has started recording...");
}
while (inRecordMode) {
int samplesRead = mAudioRecord.read(audioBuffer, 0,
mAudioBufferSampleSize);
Log.v(TAG, "Got samples: " + samplesRead);
if (WebSocketManager.roomSocket.isConnected()) {
WebSocketManager.roomSocket.send(audioBuffer);
}
}
之后,我可以将其流式传输到 ArrayBuffer 类型的 Web 浏览器,并尝试将其转换为 Float32Array 作为 AudioContext 实例的缓冲区。但我听不到任何声音或大声喧哗。
function onMessage(evt) {
var context = new AudioContext();
var source = context.createBufferSource();
source.connect(context.destination);
array = new Int8Array(evt.data);
abs = new Float32Array(evt.data);
arrays = new Float32Array(abs.length);
ab = context.createBuffer(1, array.length, 44100);
ab.getChannelData(0).set(arrays);
source.buffer = ab;
source.start(0);
// then do it
}
所以任何人都可以给我预付款,好吗?P/s:使用解码音频数据只是给出一个空错误
对不起,我的英语不好
你得到的数组是每个样本 0-32k(uint16 的范围)。 AudioBuffer 通道数据中的每个样本都是 float32 - 标称范围为 -1 到 +1。
您需要转换每个样本中的数据,而不仅仅是分配值并依赖转换。
相关文章:
- 如何播放部分音频文件
- 使用Dnamics CRM 2011中的JavaScript读取子网格的所有记录,而不考虑活动页面
- 音频控件在mouseover上显示,在mouseout上淡出
- HTML5音频加载和播放获胜'我不能在iPad上工作
- 是否可以在浏览器中使用纯JavaScript保存音频流
- AngularJs对所有页面中的所有记录进行排序
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- window.location替换并传递URL历史记录条目中的变量
- Javascript历史记录转换为php行
- angular不会更改json的音频源
- JavaScript,PHP-用JavaScript将多个数据库记录发送到变量或表
- 猫鼬在特定记录中查找嵌套记录
- 通过幻灯片更改事件停止使用jquery的音频
- 浏览器何时记录历史记录
- 使用 console.log() 在 HTML5 Audio API 和 JavaScript 中记录音频振幅
- 媒体记录器 API 通过 Web 音频 API(不是音频元素)播放
- Web音频API -记录到MP3
- Javascript检测音频记录
- HTML5音频记录可以保存文件,但通过音频控制播放时没有声音
- 如何在 Web 中播放来自 Android 的原始样本PCM_16音频数据记录(使用网络音频或其他)