Android 客户端和 Node.js 服务器

标签 android node.js cordova socket.io audiorecord

我正在尝试开发类似 PTTDroid 的项目,我指的是一键通或对讲机应用程序。

问题是在这个应用程序中你不能使用 3G 访问网络,所以我决定使用 Node.js 服务器并实现一个 Android 客户端来与之通信。我尝试使用 Phonegap 做一个多平台项目,问题是对于音频记录,你无法访问缓冲区,你只能开始和停止或暂停录音过程,但不能在捕获时发送数据。所以我的问题是,是否可以通过 Socket.IO 或类似的 Node.js 服务器通过原生 Android 函数(Audiorecord 类)实时流式传输音频捕获?

我发现了这个 project , Asimi JS,但我不知道其他人是否知道更好的方法来做我想做的事。

非常感谢您的帮助!

最佳答案

当然可以这样做,但是标准的 NodeJS http 服务器是不可取的,因为它使用 tcp。您希望使用 UDP 作为音频的传输层,因为它速度更快,并且可能发生的小数据包丢失很可能不会成为问题。

老实说,听起来您需要在 native 平台上编写一些演示应用程序 - 所以不要使用 phonegap。您需要本地平台才能访问麦克风等内容并通过 UDP 进行流式传输。

当你有一个演示工作时,你可以继续尝试另一个平台,但是从一个简单的设置开始,而不是试图一次完成所有的事情——如果它那么简单,其他人早就这样做了你。

让我推荐一个简单的 UDP 服务器,使用您最熟悉的任何语言,例如(NodeJS、Java、C、C++、C#)。让 UDP 服务器接收并将内容保存到一个文件中,然后您可以在台式计算机上播放该文件以验证结果。作为一个简单的客户端,在 Android 或 iOS 上构建一个,并流式传输您已经录制并包含在应用程序中的文件。当你有这个设置工作时,你可以 try catch 麦克风,然后做一个用户界面,然后支持多部手机,然后构建一个记录对话的服务器,然后构建一个用户数据库,等等。但从主要功能的原型(prototype)开始。

关于Android 客户端和 Node.js 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15433911/

相关文章:

node.js - 您应该将流程类型文件夹发布到 NPM 吗?

node.js - Webmatrix 2,缺少 node.js 模板

ios - 在 iOS8 中重启时清除应用程序中的 LocalStorage

android - Firebase childeventlistener 的后台服务在几分钟后不工作

android - MTK 设备中的 setPreviewTexture 失败

javascript - 在终端运行js文件

iphone - 使用 Phonegap 安装 iTunes 同步应用程序失败

cordova - 运行 Visual Studio 2015 RC 和 MS Android 模拟器时定位 adb.exe 时出错

android - 突出显示或下划线选定的 TabPageIndicator

java - 在 LocationServices 和 MainActivity 之间通信