Мне удалось интегрировать Twilio Video API, и аудиовызовы работают как веб-приложение. Однако, когда я пытаюсь создать его для мобильных устройств с помощью Phonegap Build, аудиозвонки не работают должным образом. С помощью метода отладки USB Chrome Dev Tools не было сообщено об ошибках.
Работает:
- Вызов из Интернета в Интернет из Интернета в мобильное приложение (я четко слышу звонок с любого конца)
Не работает:
- Мобильный в Интернете (нет звука вообще, я слышу только голос того, кто звонит через Интернет)
- Мобильный на мобильный (вообще ничего)
Сначала Twilio Video API не работает в приложении Phonegap и возвращает undefined
на twilio-conversations.min.js
. Я смог исправить это, добавив Crosswalk <plugin name="cordova-plugin-crosswalk-webview" spec="~2.1.0" source="npm" />
, так как я подозреваю, что это как-то связано с webrtc. После добавления этого плагина Twilio теперь может создавать разговор и подключать обоих участников.
Я не могу понять, что делать дальше. Я попытался добавить cordova-plugin-media-capture
для захвата звука и активировать «разрешение на запись звука», но все равно не повезло.
Может быть, я что-то упускаю. Любое предложение очень ценится. :)
Вот мой Phonegap config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<widget xmlns = "http://www.w3.org/ns/widgets"
xmlns:gap = "http://phonegap.com/ns/1.0"
id = "com.app.experiment"
versionCode = "1"
version = "1.0.0">
<name>Twilio Phonegap Experiment</name>
<description>
Twilio Phonegap Testing
</description>
<author href="https://domainhere.com" email="[email protected]">
woppi
</author>
<platform name="android"/>
<preference name="phonegap-version" value="cli-6.3.0" />
<preference name="orientation" value="portrait" />
<preference name="fullscreen" value="false" />
<preference name="webviewbounce" value="false" />
<preference name="DisallowOverscroll" value="true" />
<preference name="disallowOverscroll" value="true" />
<preference name="android-minSdkVersion" value="21" />
<preference name="android-installLocation" value="auto" />
<platform name="android">
<icon src="res/icon/android/drawable-ldpi-icon" qualifier="ldpi"/>
<icon src="res/icon/android/drawable-mdpi-icon" qualifier="mdpi"/>
<icon src="res/icon/android/drawable-hdpi-icon" qualifier="hdpi"/>
<icon src="res/icon/android/drawable-xhdpi-icon" qualifier="xhdpi"/>
<icon src="res/icon/android/drawable-xxhdpi-icon" qualifier="xxhdpi"/>
<icon src="res/icon/android/drawable-xxxhdpi-icon" qualifier="xxxhdpi"/>
</platform>
<platform name="android">
<splash src="res/screen/android/drawable-port-ldpi-screen" qualifier="ldpi"/>
<splash src="res/screen/android/drawable-port-mdpi-screen" qualifier="mdpi"/>
<splash src="res/screen/android/drawable-port-hdpi-screen" qualifier="hdpi"/>
<splash src="res/screen/android/drawable-port-xhdpi-screen" qualifier="xhdpi"/>
<splash src="res/screen/android/drawable-port-xxhdpi-screen" qualifier="xxhdpi"/>
<splash src="res/screen/android/drawable-port-xxxhdpi-screen" qualifier="xxxhdpi"/>
</platform>
<preference name="permissions" value="none"/>
<plugin name="cordova-plugin-camera" spec="~2.1.1" source="npm"/>
<plugin name="cordova-plugin-device" spec="~1.1.1" source="npm"/>
<plugin name="cordova-plugin-dialogs" spec="~1.2.0" source="npm"/>
<plugin name="cordova-plugin-geolocation" spec="~2.1.0" source="npm"/>
<plugin name="cordova-plugin-inappbrowser" spec="~1.3.0" source="npm"/>
<plugin name="cordova-plugin-network-information" spec="1.2.0" source="npm"/>
<plugin name="cordova-plugin-splashscreen" spec="~3.2.1" source="npm"/>
<plugin name="cordova-plugin-statusbar" spec="~2.1.2" source="npm"/>
<plugin name="cordova-plugin-whitelist" spec="~1.2.1" source="npm"/>
<plugin name="cordova-plugin-crosswalk-webview" spec="~2.1.0" source="npm" />
<plugin name="cordova-plugin-media-capture" spec="~1.4.0" source="npm" />
<access origin="*" subdomains="true"/>
<allow-intent href="http://*/*"/>
<allow-intent href="https://*/*"/>
<allow-intent href="tel:*"/>
<allow-intent href="sms:*"/>
<allow-intent href="mailto:*"/>
<allow-intent href="geo:*"/>
<platform name="android">
<allow-intent href="market:*"/>
</platform>
</widget>