webaudio在Android设备上使用crosswalk无法使用离子 [英] webaudio not working with ionic using crosswalk on android device

查看:188
本文介绍了webaudio在Android设备上使用crosswalk无法使用离子的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了一个离子webrtc应用程序,在使用 ionic serve 时运行得很好(在网络浏览器上,这是正常的)。但由于 getUserMedia 函数无法执行,因此设备上根本无法正常工作。



我找到的解决方案是在 AndroidManifest.xml 中安装crosswalk,更新权限并添加元标记内容安全的 index.html < meta http-equiv =Content-Security-Policy:media-src:'self'mediastream >



现在,我有一个有效的离子webrtc应用程序,但只有视频,音频无效。 Android应用程序能够使用其音频显示视频,但似乎只发送没有音频的视频!



我的设置:



AndroidManifest.xml 文件的权限:

 < uses-permission android:name =android.permission.INTERNET/> 
< uses-permission android:name =android.permission.ACCESS_NETWORK_STATE/>
< uses-permission android:name =android.permission.ACCESS_WIFI_STATE/>
< uses-permission android:name =android.permission.CAMERA/>
< uses-permission android:name =android.permission.RECORD_AUDIO/>
< uses-permission android:name =android.permission.RECORD_VIDEO/>

离子信息的输出命令:

 您的系统信息:

Cordova CLI:5.4.1
Gulp版本:CLI版本3.9.0
Gulp本地:
离子版本:1.2.4
Ionic CLI版本:1.7.13
Ionic App Lib版本:0.6.5
操作系统:Windows 8.1
节点版本:v0.12.2

输出离子浏览器列表命令:



'pre> 的iOS - 浏览器清单:

尚不可用 - WKWebView
尚未公布 - 的UIWebView


Android - 浏览器列表:


可用 - Crosswalk - 离子浏览器添加人行横道
版本8.37.189.14已发布
版本9.38.208.10已发布
版本10.39.235.15已发布
版本11.40.277.7已发布
版本12.41.296.5已发布
(beta)版本13.42.319.6 Publ ished
(金丝雀)发布的版本14.42.334.0

酒店 - 人行横道,精简版 - 离子浏览器添加人行横道,精简版
(金丝雀)10.39.234.1版发布时间
( canary)版本10.39.236.1发布

可用 - 浏览器(默认) - 离子浏览器还原android
尚不可用 - GeckoView

ionic.project 文件的内容:

  {
name:WebRtc app,
app_id:,
browsers:[
{
platform:android,
browser:crosswalk,
version:16.45.421.19
}
]
}

我不明白的是在人行横道插件文件夹中的 README.md 文件我可以阅读以下内容:

  ###好处

* WebView不会改变,具体取决于Android版本
*功能:如WebRTC,WebAudio,Web Component s
*性能改进(与较旧的系统网页相比)

所以,它是怎么来的crosswalk声称webrtc和webaudio正在运行,但只有视频正在我的应用上工作,而不是音频?



由于缺少其他设备,该应用只是在两个armv7安卓智能手机上进行了测试,我无法说出x86中会发生什么。



感谢您的回答,因为我真的需要知道我是否在正确的方向,或者只需回退到本机代码。

解决方案

找到它。它与人行横道无关,这是一个许可问题。刚刚将以下行添加到权限列表中,视频和音频都正常工作。

 < uses-permission android:name =android.permission.MODIFY_AUDIO_SETTINGS/> 


I created an ionic webrtc app that runs perfectly when using ionic serve (on web browser, witch is normal). but was not working at all on the device since the getUserMedia function was not able to execute.

The solution i found is to install crosswalk, update permissions in the AndroidManifest.xml and add the meta tag on the index.html for content security: <meta http-equiv="Content-Security-Policy: media-src: 'self' mediastream">

Now, i have a working ionic webrtc app but only video, the audio is not working. the android app is able to diplay video with its audio, but seems to only send video without audio !

My settings :

Permissions on the AndroidManifest.xml file :

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.RECORD_VIDEO" />

Output of the ionic info command :

Your system information:

Cordova CLI: 5.4.1
Gulp version:  CLI version 3.9.0
Gulp local:
Ionic Version: 1.2.4
Ionic CLI Version: 1.7.13
Ionic App Lib Version: 0.6.5
OS: Windows 8.1
Node Version: v0.12.2

Output of the ionic browser list command :

iOS - Browsers Listing:

Not Available Yet - WKWebView
Not Available Yet - UIWebView


Android - Browsers Listing:


Available - Crosswalk - ionic browser add crosswalk
         Version 8.37.189.14 Published
         Version 9.38.208.10 Published
         Version 10.39.235.15 Published
         Version 11.40.277.7 Published
         Version 12.41.296.5 Published
(beta)   Version 13.42.319.6 Published
(canary) Version 14.42.334.0 Published

Available - Crosswalk-lite - ionic browser add crosswalk-lite
(canary) Version 10.39.234.1 Published
(canary) Version 10.39.236.1 Published

Available - Browser (default) - ionic browser revert android
Not Available Yet - GeckoView

Content of the ionic.project file :

{
  "name": "WebRtc app",
  "app_id": "",
  "browsers": [
    {
      "platform": "android",
      "browser": "crosswalk",
      "version": "16.45.421.19"
    }
  ]
}

what i dont understand is that in the README.md file in the crosswalk plugin folder i can read the following :

    ### Benefits

* WebView doesn't change depending on Android version
* Capabilities: such as WebRTC, WebAudio, Web Components
* Performance improvements (compared to older system webviews)

so, how it comes that crosswalk claims that webrtc and webaudio is working, but only the video is working on my app, not the audio ??

For the lack of other devices, the app was only tested on two armv7 android smartphones, i cant say what happens in an x86.

Thanks for your answers, since i really need to know if im in the right direction, or just fallback to native code.

解决方案

Found it. It had nothing to do with crosswalk, it was a permission problem. Just added the following line to the list of permissions and the video and the audio are both working fine.

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

这篇关于webaudio在Android设备上使用crosswalk无法使用离子的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆