我知道如何将数据发送到API,但我的主要问题是如何从移动设备记录数据并使用它(暂时,不保存到设备本身,除非没有网络连接,然后数据应该保存,并且对API的请求应该排队,直到有稳定的网络连接).
我需要实现几件事:
– 可选比特率
– 检测设备上剩余的空间以计算最大记录长度(很高兴)
– 更长的录制时间(只要基本上有空间,或者如果没有(简单)方法将其切割成多个片段,则限制它)
– 能够实现自定义UI
我已经找到了几种方法来做到这一点,但大多数教程/指南/文档已经过时,功能已弃用的功能/方法或具有设置的UI.
我尝试了大多数推荐的Cordova插件,唯一一个做过工作的插件有一个设置用户界面,这对我来说是不行的,我正在处理的应用程序需要一个自定义UI.我尝试的东西列表中的getUserMedia(),直接在我的iPhone上使用Safari开发工具,返回undefined.
如果我错了,请纠正我,并错过了一些惊人的原生功能或一些npm包/ Cordova插件.
欢迎任何建议或链接!
编辑:
总结一下,我正在寻找主流方式(对于两个平台,最好使用相同的代码)来录制音频,如果需要临时存储它并用它做事(比如将它发送到API).
编辑2:
客户端刚刚提出了一些新请求,这改变了应用程序的范围.所请求的更改之一(对于客户端,这是最重要的功能)是我保存用户录制的音频文件,因此可以随时播放.不会应用设备之间的同步.
问题仍然大致相同,但我确实需要保存录制的音频.
解决方法
https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-media/index.html#mediastartrecord
这很简单,如果你需要更多的控制,我担心你必须使用本机代码创建一个自定义插件.我们已经做了类似的事情来访问Android均衡器和其他功能.