getUserMedia Android Webview Ionic

getUserMedia Android Webview Ionic

我正在尝试通过使用 getUserMedia 获取 Android 设备的相机流来做一些基本的事情。据我了解,Android Lollipop 应该支持此功能,我是 运行,但即使将权限设置为允许视频和音频,我对媒体流的请求也会被自动拒绝。

所以我尝试将 Crosswalk 与 Ionic 结合使用,并且可以获取媒体流。数据只是空的。据我了解,这应该得到支持。还有其他人有使用 Cordova / Ionic 获取相机视频流数据的经验吗?

确保您在 platforms/android/AndroidManifest 中拥有 RECORD_AUDIO 和 CAMERA 权限。xml:

<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />

Cordova 会注意 Cordova API 的必要权限并将它们添加到清单文件中,但它不会 HTML5 API.

问题已由 https://github.com/MobileChromeApps/cordova-plugin-chrome-apps-audioCapture

修复
$ cordova plugin add cordova-plugin-chrome-apps-audiocapture --save
$ cordova build
$ cordova run android

现在可以使用 audioContext.createScriptProcessor 处理麦克风流。

ps。看来,要使此功能起作用,仅 RECORD_AUDIO 权限是不够的,该插件还使用 MODIFY_AUDIO_SETTINGS

接受的答案肯定会在更改 Android 权限之前起作用。您现在可以在使用时请求使用本机函数(老实说,这比在启动时更有意义),因此我强烈建议您使用 Android Permissions plugin,这将允许您以编程方式和按需检查和请求权限。

对于已接受答案中的相同用例,您可以执行以下操作:

var permissions = cordova.plugins.permissions;

var permList = [
  permissions.CAMERA,
  permissions.RECORD_AUDIO
];

permissions.requestPermissions(permList, permCallBackSuccess, permCallBackError);

我希望这对以后的人有所帮助,因为它节省了我很多时间!