【发布时间】:2017-03-03 13:10:16
【问题描述】:
我能够集成 Twilio Video API,并且音频呼叫作为 Web 应用程序运行。但是,当我尝试通过 Phonegap Build 为移动设备构建它时,音频呼叫没有按预期工作。通过 Chrome Dev Tools USB 调试方法没有报错。
作品:
- 网络到网络呼叫网络到移动应用程序(我可以清楚地听到来自任一端的呼叫)
不工作:
- 手机转网络(完全没有声音,只能听到通过网络打电话的人的声音)
- 手机到手机(什么都没有)
起初,Twilio Video API 无法在 Phonegap 应用程序中运行,并在 twilio-conversations.min.js 上返回 undefined。我可以通过添加 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="woppi@domainhere.com">
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>
【问题讨论】:
-
你能解决这个问题吗?
-
@Alexander Pritchard 否。尝试了很多与音频许可的组合,但想不出还能做什么。几周前我还通过电子邮件发送了 video-product@twilio.com,但直到现在都没有回复。可悲的是,不得不放弃我为phonegap所做的一切,决定走原生路,学习android开发/java,然后使用他们的Android SDK。我只是重新开始。天哪!
-
很遗憾听到这个消息。我目前正在进行一个具有固定预算的生产级项目。真可惜,因为这可能会影响我们是否可以为客户发布此功能,而不必自己承担成本。
-
我跟进了这个。使用“adb logcat”从设备获取日志,我看到我需要请求额外的权限才能访问音频和视频设备。 (具体来说,在 RECORD_AUDIO 之前的 MODIFY_AUDIO_SETTINGS 实际上可以获取设备。)使用这个插件来拥有所有这些权限:npmjs.com/package/cordova-opentok-android-permissions 然后这个插件在运行时请求权限:npmjs.com/package/cordova-opentok-android-permissions 稍后我会尝试给出更彻底的答案.我们正忙于尝试在 iOS 上实现这一点。
-
@NicholasKreidberg 是的,这就是我们采用原生方式的原因......我已经尝试了两个星期的解决方案......这真的是一个压力很大的时刻,因为我已经取得了进展并且这是一个主要障碍。哈哈。无论如何,祝你好运。
标签: cordova twilio phonegap-build crosswalk twilio-api