Phonegap TTS 插件 Android 不工作

2024-03-20

我正在使用 TTS 插件https://github.com/domaemon/org.apache.cordova.plugin.tts https://github.com/domaemon/org.apache.cordova.plugin.tts但该插件似乎不起作用。它甚至没有初始化。

安装如下插件(PHONEGAP 3.3)

phonegap plugin add https://github.com/domaemon/org.apache.cordova.plugin.tts.git
phonegap build android

在phonegap config.xml中添加以下内容

<gap:plugin name="org.apache.cordova.plugins.tts" value="org.apache.cordova.plugins.tts"/>

在我的 javascript 中添加了以下代码

window.plugins.tts.startup(startupWin, fail);
function startupWin(result) {
    console.log("Startup win");
    // When result is equal to STARTED we are ready to play
    if (result == TTS.STARTED) {
        window.plugins.tts.getLanguage(win, fail);
        window.plugins.tts.speak("The text to speech service is ready");
        window.plugins.tts.isLanguageAvailable("en_US", function() {
            addLang("en_US", "English (American)");
        }, fail);
        window.plugins.tts.isLanguageAvailable("en_GB", function() {
            addLang("en_GB", "English (UK)");
        }, fail);
        window.plugins.tts.isLanguageAvailable("fr", function() {
            addLang("fr", "French");
        }, fail);
        window.plugins.tts.isLanguageAvailable("de", function() {
            addLang("de", "German");
        }, fail);
        window.plugins.tts.isLanguageAvailable("it", function() {
            addLang("it", "Italian");
        }, fail);
        window.plugins.tts.isLanguageAvailable("es", function() {
            addLang("es", "Spanish");
        }, fail);
    }
}

function addLang(loc, lang) {
    var langs = document.getElementById('langs');
    var langOption = document.createElement("OPTION") 
    langOption.innerText = lang; 
    langOption.value = loc;
    langs.options.add(langOption); 
}

function changeLang() {
    var yourSelect = document.getElementById('langs');
    window.plugins.tts.setLanguage(yourSelect.options[yourSelect.selectedIndex].value, win, fail);
}

function win(result) {
    console.log(result);
}

function fail(result) {
    console.log("Error = " + result);
}

function speak() {
    console.log("Speaking");
    window.plugins.tts.speak("How are you");
}           

但没有显示任何控制台日志消息。我正在 genymotion 模拟器上测试这个。


经过一番努力,我的 TTS 开始工作了。但仍有一个问题我必须手动修复。以下是让 TTS 正常工作的步骤

安装插件如下。

phonegap plugin add https://github.com/domaemon/org.apache.cordova.plugin.tts.git
phonegap build android

一旦安装和构建。将此插件添加到phonegap config.xml 文件中。 (如果您使用 sencha touch 构建应用程序,则 config.xml 将位于根文件夹中。)

<gap:plugin name="org.apache.cordova.plugins.tts" value="org.apache.cordova.plugins.tts"/>

这会将插件添加到最终版本中。现在要启动 TTS 服务并说出一些文本,请使用以下代码片段。

navigator.tts.startup(startupWin, fail);
function startupWin(result) {
    console.log("Startup win");
    // When result is equal to STARTED we are ready to play
    console.log("Result "+result);
    //TTS.STARTED==2 use this once so is answered
    if (result == 2) {
        navigator.tts.getLanguage(win, fail);
        navigator.tts.speak("The text to speech service is ready");                                     
    }
}                               

function win(result) {
    console.log(result);
}

function fail(result) {
    console.log("Error = " + result);
}

我遇到的问题是startupWin 中的TTS.STARTED 未在插件中定义。我只是使用了常量的值,并且该插件运行良好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Phonegap TTS 插件 Android 不工作 的相关文章

随机推荐

  • AspectJ 的 NoSuchMethodError

    注意 这是概念实现的证明 而不是最终的事情 我有第三个 派对附加组件 我想限制他们对声音的使用 例如限制持续时间等 安全管理器不可能实现 为了实现这一点 我考虑用包装器替换 AudioSystem getLine 的返回值 这是测试方面 A
  • 如何使用 python 从 JSON 中提取特定字段和值?

    我正在迭代 JSON 我想从此对象中提取以下字段 Id 开放日期 User 票证状态 结束日期 我的数据结构如下 filtered data id 1021972 Aging Deferred Transferred Aging Open
  • MongoDB 全文搜索

    创建索引 db MyCollection createIndex text name FullTextIndex 搜索匹配项 db MyCollection find text search myWord count 结果为 1 对于具有值
  • 接口从类加载器中不可见

    我是新玩的 框架并使用 wsdl2java 工具 我正在开发一部戏 需要与 SOAP Web 服务交互的应用程序 我有 WSDL 并使用 jaxws 从它创建对象 它创建了一堆 java 类和 1 个接口 当我尝试进行 Web 服务调用时
  • 如何让R8 + proguard-android-optimize.txt + Google Drive API 无缝工作?

    这是我们的R8版本 当前版本是 1 4 94 来自 go r8bot luci r8 ci archive 0 5g74 的内部版本 390954928f0db9c3b888a367f7f128ce3bbfb160 当我从 buildTyp
  • 具有多个服务器和 php 工作人员的 Gearman

    我在多个服务器上运行的 gearman 工作人员遇到了问题 我似乎无法解决 当工作服务器脱机而不是工作进程被取消时 就会出现此问题 并导致所有其他工作进程出错和失败 仅 1 个客户和 2 个工作人员的示例 Client client new
  • 从docker容器访问主机的ssh隧道

    使用 ubuntu tusty 有一个在远程计算机上运行的服务 我可以通过 ssh 隧道通过端口转发来访问该服务localhost 9999 我有一个正在运行的 docker 容器 我需要从容器内通过主机的隧道访问该远程服务 我尝试从容器到
  • 没有 Web 应用程序服务器的 Java Web 服务

    我们有一个消息处理服务器 它 启动几个线程 处理消息 与数据库交互等 现在客户想要一个网络服务服务器在服务器上 他们将能够通过 Web 服务客户端查询消息处理服务器 例如给我今天的所有消息 或者删除带有 id 的消息 问题是 服务器只是一个
  • Meteorjs 加载消息

    我构建了应用程序 从 mongodb 加载初始数据集需要时间 我想显示加载 gif 直到数据加载完成 你能帮我做这件事吗 Use Session在 的里面onReady 的回调Meteor subscribe 函数 当订阅完成时调用 Met
  • 如何为 jQuery 选择器创建自定义函数

    如何创建一个自定义函数来附加到 jQuery 选择器 看起来像这样的东西 my class my function 您想要将该功能添加到jQuery fn 这是对 jQuery 对象原型的引用 欲了解更多详情 请查看 http docs j
  • sp_dbcmptlevel 被弃用后如何检查 SQL Server 数据库兼容性?

    根据 BOL SQL Server 联机丛书 sp dbcmptlevel http technet microsoft com en us library ms178653 aspx Microsoft SQL Server 的未来版本将
  • 按下退出按钮时最小化移动应用程序

    我正在使用 J2ME 和 LWUIT 开发移动应用程序 每当默认退出时Button 红色 在装有 symbian 操作系统的手机上按下 我希望我的应用程序最小化并且不退出 我该如何实现这一目标 根据诺基亚文档http library dev
  • Mysql - 根据顺序从另一列更新表列

    我有一个带有列的表格id name position old position 专栏old position包含用于在进行选择时定义顺序的唯一编号 但这些数字不是连续的 即使已订购 例如 2 12 11 14 20 35 45 28 我想要
  • Sqlite 应用内数据库迁移的最佳实践

    我在 iPhone 上使用 sqlite 我预计数据库架构可能会随着时间的推移而改变 每次成功迁移有哪些陷阱 命名约定和需要注意的事项 例如 我考虑过在数据库名称后附加一个版本 例如 Database v1 我维护的应用程序需要定期更新 s
  • Python生成特定长度的唯一范围并对它们进行分类

    我有一个数据框列 它指定用户执行某项活动的次数 例如 gt gt gt df ActivityCount Users ActivityCount User0 220 User1 190 User2 105 User3 109 User4 2
  • 带逗号和小数的 Jquery 掩码数字

    我正在使用 Jquery mask 插件来格式化我网站上的许多内容 并且我正在尝试弄清楚如何让它以我需要的方式格式化数字 我正在使用以下插件 https igorescobar github io jQuery Mask Plugin ht
  • 使用 Docker Hub 和私有镜像时出现 Kubernetes PullImageError

    我正在努力让 Kubernetes 使用我的私有 hub docker com 注册表映像 我正在使用 kubectl 版本 Client Version version Info Major 1 Minor 1 GitVersion v1
  • xpath 日期比较

    我正在尝试根据格式为日期的属性来过滤元素yyyy MM dd 我的 XML 看起来像这样
  • 如何更改 Apple 应用商店中已发布 iOS 应用的可用区域

    We are trying to change the availability of territories of a released iOS app in Apple app store Unfortunately a bug of
  • Phonegap TTS 插件 Android 不工作

    我正在使用 TTS 插件https github com domaemon org apache cordova plugin tts https github com domaemon org apache cordova plugin