分类
外汇获利之道

二进制机器人WS评论

这样就完成了一个自定义工区的编译,使用如下命令加载环境:

ROS2机器人应用简明教程4工区

如上图所示,foxy/noetic分别为ros2和ros1的系统工作区,使用如下命令可以顺利加载配置:

  • source /opt/ros/foxy/setup.bash

如上文件夹下都是使用apt安装在系统目录下的软件包。 如果自定义机器人软件程序,通常在home文件夹下,新建诸如ros_ws/src文件夹,然后编写代码,编译生成可执行文件使用。 以博客中之前讲解过的mobot为例,此案例正在dashing/eloquent/foxy进行测试。 如果需要编译工区源码,需要使用如下命令安装所需功能包:

  • rosdep install -i –from-path src –rosdistro foxy -y

这样就完成了一个自定义工区的编译,使用如下命令加载环境:

AlloyTeam

Creates a ScriptProcessorNode, which can be used for direct audio processing via JavaScript.

概括下就是这个方法是使用 JavaScript 去处理音频采集操作

The destination property of the AudioContext interface returns an AudioDestinationNoderepresenting the final destination of all audio in the context.

audioData 是一个对象,这个是在网上找的,我就加了一个 clear 方法因为后面会用到,主要有那个 encodeWAV 方法很赞,别人进行了多次的音频压缩和优化,这个最后会伴随完整的代码一起贴出来

此时整个用户进入频道之后从麦克风输入音频环节就已经完成啦,下面就该是向服务器端发送音频流,稍微有点蛋疼的来了,刚才我们说了,websocket 通过 opcode 不同可以表示返回的数据是文本还是二进制数据,而我们 onaudioprocess 中 input 进去的是数组,最终播放声音需要的是 Blob, 的对象,这样我们就必须要在发送之前将数组转换成 WAV 的 Blob,此时就用到了上面说的 encodeWAV 方法

本地测试确实可以,然而天坑来了!将程序跑在服务器上时候调用 getUserMedia 方法提示我必须在一个安全的环境,也就是需要 https,这意味着 ws 也必须换成 wss…… 所以服务器代码就没有采用我们自己封装的握手、解析和编码了,代码如下