Я создал ионное приложение webrtc, которое отлично работает при использовании ionic serve
(в веб-браузере это нормально). но вообще не работал на устройстве, так как функция getUserMedia
не могла выполняться.
Решение, которое я нашел, состоит в том, чтобы установить пешеходный переход, обновить разрешения в AndroidManifest.xml
и добавить метатег в index.html
для безопасности контента: <meta http-equiv="Content-Security-Policy: media-src: 'self' mediastream">
Теперь у меня есть работающее приложение ionic 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" />
Вывод команды ionic info
:
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
Вывод команды ionic browser list
:
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
Содержимое файла ionic.project
:
{
"name": "WebRtc app",
"app_id": "",
"browsers": [
{
"platform": "android",
"browser": "crosswalk",
"version": "16.45.421.19"
}
]
}
чего я не понимаю, так это того, что в файле README.md
в папке плагина пешеходного перехода я могу прочитать следующее:
### Benefits
* WebView doesn't change depending on Android version
* Capabilities: such as WebRTC, WebAudio, Web Components
* Performance improvements (compared to older system webviews)
Итак, как получается, что пешеходный переход утверждает, что webrtc и webaudio работают, но в моем приложении работает только видео, а не звук??
За неимением других устройств, приложение тестировалось только на двух Android-смартфонах armv7, не могу сказать, что происходит на x86.
Спасибо за ваши ответы, так как мне действительно нужно знать, в правильном ли я направлении или просто откат к собственному коду.