研:h5 实时采集音频,实现实时语音通话

需求:

希望采集到pcm数据,8k采样率,16位单声道的数据

https://zhidao.baidu.com/question/574806420.html

垃圾,,,采样率这些目前都不是核心问题,问题是先能实时传下去。这些都是要有接口的情况下,通过一个参数进行设置的。或者就寻求现成的。

 

需求分析:

1.实时是个问题,是否有api能满足,如果不能,

 

是否可以使用websocket发到本地端口?

目前的demo用的:

mediaRecorder()录音(采集音频)

getuserMedia() 获取数据()

可能是可以的,,,研究几个接口,或者用多线程来解决。

 

web 实时语音可能的技术:

webrtc 不可用

websocket 不可用

那你还让用啥实现???????????????????????????????????

结论:不支持,无法做到。

答复,有可用的接口,但条件限制用不了。木有办法,别怪我。

 

 

 

死马解决思路(方案):

相当于一边录音一边发,两个线程进行

那至少需要3个线程,线程1录音,线程2同时发剪切了的音频数据,线程3监听是否有对方的语音数据,并播放,那么可能会导致说话的声音又被录回去(本质是单线程,可能实际不会),太复杂了。而且这是最简陋版本的考虑。

注意:js本来就不支持多线程的,“多线程只是模拟出来的”

 

方案一:

MediaRecorder()+MediaDevices.getUserMedia()+AudioContext()

+多线程?

JavaScript多线程初步学习

Concurrent.Thread.js

webworker 用不了

gears.js   http://en.verysource.com/code/708855_1/gears.js.html

 

先研究几个接口。

MediaRecorder:录音用的,在start和stop之间就要切分无数小份音频,如何做到?而他们是连招,录停无数次。问题预测,那边来的语音用什么播放???????????????????????????????????????????????????

getUserMedia:获取数据流

AudioContext:播放音频等,替代audio标签的存在

 

 

 

 

 

方案二:

使用websocket 发送到本地固定端口,再通过api c++ 实时读取数据并给so? 或者直接让so读某端口数据?

凉,,,,,

 

 

2.实时的原理是什么,是否可以自己扩展一个,

就是不断(可能间隔1ms)地将采集到的数据不断发走,直达你给信号停止录音并停发。

参考:https://blog.csdn.net/hunter___/article/details/87710736

3.若不能,次一点的方案给对方。

 

 

 

 

 

什么思路?是否有接口?

 

单线程。

浏览器定时器线程和事件触发线程。

 

参考

web音频流转发之AudioNode
web音频流转发之音频源

 

android:

Android 音视频开发(二):使用 AudioRecord 采集音频PCM并保存到文件

https://www.jianshu.com/p/125b94af7c08

 

你可能感兴趣的:(ff,os)