Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 爱奥尼亚·科尔多瓦·麦克唐斯特演讲会获奖';我不能开始?_Javascript_Angularjs_Cordova_Ionic Framework_Speech Recognition - Fatal编程技术网

Javascript 爱奥尼亚·科尔多瓦·麦克唐斯特演讲会获奖';我不能开始?

Javascript 爱奥尼亚·科尔多瓦·麦克唐斯特演讲会获奖';我不能开始?,javascript,angularjs,cordova,ionic-framework,speech-recognition,Javascript,Angularjs,Cordova,Ionic Framework,Speech Recognition,TL;DR:它不起作用的原因是我在安卓6.0上运行该应用程序。在6.0中,您必须手动授予应用程序访问麦克风的权限 原创帖子: 我想创建一个ionic应用程序,使用来自的speechRecognition 但有什么东西不管用 起初,我创建了一个爱奥尼亚项目: ionic start cordova-speech blank 我进入新文件夹并下载了插件: cordova plugin add https://github.com/macdonst/SpeechRecognitionPlugin

TL;DR:它不起作用的原因是我在安卓6.0上运行该应用程序。在6.0中,您必须手动授予应用程序访问麦克风的权限

原创帖子: 我想创建一个ionic应用程序,使用来自的speechRecognition

但有什么东西不管用

起初,我创建了一个爱奥尼亚项目:

ionic start cordova-speech blank
我进入新文件夹并下载了插件:

cordova plugin add https://github.com/macdonst/SpeechRecognitionPlugin
然后我添加了android平台

我的HTML文件:

<body ng-app="starter">
    <ion-pane ng-controller="AppCtrl">        
      <ion-content class="padding">     
        <button class="button button-full button-positive" ng-click="record()">
          Record
        </button>
        <div class="card">
          <div class="item item-text-wrap">
            {{recognizedText}}
          </div>
        </div>
      </ion-content>
    </ion-pane>
</body>
我在代码中添加了一些警报以进行调试(无法在浏览器中调试该功能)。当我按下记录按钮时,它只会弹出第一个和第二个警报。这个问题似乎没有结果。我错过了什么

我使用的是安卓6.0

我做了一个记录。结果是:

02-14 03:39:28.109   202   815 D audio_hw_primary: select_devices: out_snd_device(2: speaker) in_snd_device(0: none)
02-14 03:39:28.109   202   815 D msm8974_platform: platform_send_audio_calibration: sending audio calibration for snd_device(2) acdb_id(15)
02-14 03:39:28.109   202   815 D audio_hw_primary: enable_snd_device: snd_device(2: speaker)
02-14 03:39:28.114   202   815 D audio_hw_primary: enable_audio_route: apply and update mixer path: low-latency-playback
02-14 03:39:28.124 26122 26210 D OpenGLRenderer: endAllStagingAnimators on 0x985f7a00 (RippleDrawable) with handle 0x9cace320
02-14 03:39:28.173   779  1396 W InputMethodManagerService: Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@eaa7e51 attribute=null, token = android.os.BinderProxy@f80d5f9
02-14 03:39:28.307   189   189 W SurfaceFlinger: couldn't log to binary event log: overflow.
02-14 03:39:29.552   202   815 D audio_hw_primary: out_set_parameters: enter: usecase(1: low-latency-playback) kvpairs: routing=2
02-14 03:39:29.560 26122 26122 I chromium: [INFO:CONSOLE(34)] "initialized", source: file:///android_asset/www/plugins/org.apache.cordova.speech.speechrecognition/www/SpeechRecognition.js (34)
02-14 03:39:29.562   779  1389 W InputMethodManagerService: Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@7dff324 attribute=null, token = android.os.BinderProxy@f80d5f9
02-14 03:39:29.569 30081 30096 E RecognitionService: call for recognition service without RECORD_AUDIO permissions
02-14 03:39:29.569 26122 26122 D SpeechRecognition: error speech
02-14 03:39:29.570 26122 26122 W CordovaPlugin: Attempted to send a second callback for ID: SpeechRecognition494458598
02-14 03:39:29.570 26122 26122 W CordovaPlugin: Result was: {"type":"end"}
02-14 03:39:29.570 26122 26122 D cr_Ime  : [ImeAdapter.java:213] updateKeyboardVisibility: type [0], flags [0], show [true]
02-14 03:39:29.570 26122 26122 D cr_Ime  : [AdapterInputConnection.java:178] updateState [] [0 0] [-1 -1] [true]
02-14 03:39:29.586   202   815 D AudioFlinger: mixer(0xb4180000) throttle end: throttle time(7)
02-14 03:39:29.747   189   189 W SurfaceFlinger: couldn't log to binary event log: overflow.
02-14 03:39:30.796   910 31147 D NotificationMonitor: onNotificationPosted :StatusBarNotification(pkg=com.qihoo.security user=UserHandle{0} id=277 tag=null score=20 key=0|com.qihoo.security|277|null|10720: Notification(pri=2 contentView=com.qihoo.security/0x7f0300d4 vibrate=null sound=null tick defaults=0x0 flags=0x2 color=0x00000000 sortKey=sort_key_00 vis=PRIVATE))
02-14 03:39:30.903   910 31147 D NotificationMonitor: return, onNotificationPosted OWN_PKG_NAME
02-14 03:39:32.721   202   815 D audio_hw_primary: disable_audio_route: reset and update mixer path: low-latency-playback
02-14 03:39:32.721   202   815 D audio_hw_primary: disable_snd_device: snd_device(2: speaker)
更新: 我安装了

cordova plugin add cordova-plugin-chrome-apps-audiocapture --save
ordova plugin add org.apache.cordova.media
有人说我应该把它拿走

<uses-permission android:name="android.permission.RECORD_AUDIO" />

来自我的speechrecognition和cordova媒体插件,但也没有帮助。它现在执行第4个警报,但跳过警报3,这意味着onresult函数仍然存在问题。

日志中的这一行:

02-14 03:39:29.569 30081 30096 E RecognitionService: call for recognition service without RECORD_AUDIO permissions
告诉您需要设置在应用程序中录制音频的权限。您可以添加插件
org.apache.cordova.media

cordova plugin add org.apache.cordova.media 

如前所述。

不,没有帮助。请参见更新安卓6.0用户必须单独确认应用程序页面中的录制权限。@NikolayShmyrev您能否详细说明“单独确认应用程序页面中的录制权限”的含义。我是否需要编写一些代码,因为我无法在Android 6中工作。媒体插件也是必须的?是的,你需要添加更多的代码,请看这里的@NikolayShmyrev,但这似乎是android特定的代码。这意味着插件需要扩展?我正在我的cordova应用程序中测试它,在第一次请求时,我会弹出来访问我的麦克风。但它仍然不起作用。
cordova plugin add org.apache.cordova.media