3

私はかなり厄介な問題に直面しています: 顧客プロジェクトの場合、HTML5/JavaScript (顧客仕様) を利用して、ある種の「発話の終わり」を検出する必要があります。それで、私はいくつかの調査を行い、「まあ、SpeechRecognition API を試してみましょう」と考えました。それは「onpeechend」イベントです。これは私のマシンでは魅力的に機能しますが、アプリケーション自体では機能しません。私の調査中に、アプリ内で使用している WebView は、実際にはシステムの既定のブラウザーではないことがわかりました。

デフォルトのブラウザの userAgent が私を返します

Mozilla/5.0 (Linux; Android 6.0.1; SM-G900F Build/MMB29M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/54.0.2840.68 Mobile Safari/537.36

ただし、WebView-userAgent は戻ります

Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG SM-G900F Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36

気がかりな部分は、SpeechRecognition-API がデフォルトのブラウザーで使用できるが、WebView インスタンスでは使用できないことです。これを修正/回避する方法を知っている人はいますか?

または任意のアイデア、スピーチの終わりを検出する方法。残念ながら、SpeechRecognition-Intent の使用はオプションではありません。私はそのようにしたいのですが、前述のとおり、顧客は HTML5/JavaScript でこれを行うことを主張しています。

4

2 に答える 2

0

問題は、webview がデフォルトのデバイス レンダリング エンジンを使用していることです (この回答で説明されているように)。また、そのデフォルト エンジンは Chrome 44 に基づいており、デフォルト ブラウザの Chrome 54 で使用できる、使用したい API をサポートしていない可能性があります。

Crosswalkなど、レンダリング エンジンの別の実装を試してください。これを使用すると、アプリの webview として適切な crosswalk リリース バージョンに切り替えることで、特定の chrome バージョンが使用されるようにすることができます。埋め込むと apk のサイズが大きくなりますが、共有モードを使用するには、ユーザーが Google Play から crosswalk ランタイムをインストールする必要があります。

于 2016-11-08T21:56:22.147 に答える