【问题标题】:How to make Twilio Video API Javascript SDK + Phonegap Build work?如何使 Twilio Video API Javascript SDK + Phonegap Build 工作?
【发布时间】: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


【解决方案1】:

我相信您需要为视频 SDK 构建一个 Phonegap 插件来实现这一点。 GitHub 上有一个 Twilio Client SDK 项目。我已经成功地使用this 插件开发了一个使用Twilio Client for Android 和IOS 的Cordova 应用程序。也许你可以自己开发一个插件。

希望这会有所帮助!

【讨论】:

  • 我为移动应用选择了 Android SDK 路线。
猜你喜欢
  • 2018-06-19
  • 1970-01-01
  • 2016-12-20
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多