Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.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
Android 使用okhttp3向Amazon Alexa发送音频数据时出现流重置异常_Android_Okhttp3_Alexa - Fatal编程技术网

Android 使用okhttp3向Amazon Alexa发送音频数据时出现流重置异常

Android 使用okhttp3向Amazon Alexa发送音频数据时出现流重置异常,android,okhttp3,alexa,Android,Okhttp3,Alexa,在尝试向Alexa发送音频请求时,此错误会发生多次。在github中使用Alexa库: okhttp3.internal.http2.StreamResetException: stream was reset: CANCEL at okhttp3.internal.http2.Http2Stream.checkOutNotClosed(Http2Stream.java:567) at okhttp3.internal.http2.Http2Stream$FramingSink.emitFram

在尝试向Alexa发送音频请求时,此错误会发生多次。在github中使用Alexa库:

okhttp3.internal.http2.StreamResetException: stream was reset: CANCEL
at okhttp3.internal.http2.Http2Stream.checkOutNotClosed(Http2Stream.java:567)
at okhttp3.internal.http2.Http2Stream$FramingSink.emitFrame(Http2Stream.java:501)
at okhttp3.internal.http2.Http2Stream$FramingSink.write(Http2Stream.java:481)
at okio.RealBufferedSink.emitCompleteSegments(RealBufferedSink.java:171)
at okio.RealBufferedSink.write(RealBufferedSink.java:85)
at okhttp3.MultipartBody.writeOrCountBytes(MultipartBody.java:171)
at okhttp3.MultipartBody.writeTo(MultipartBody.java:113)
at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:59)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:120)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:179)
at okhttp3.RealCall.execute(RealCall.java:63)
at com.willblaschko.android.alexa.AlexaManager$AsyncEventHandler.success(AlexaManager.java:614)
at com.willblaschko.android.alexa.AlexaManager$AsyncEventHandler.success(AlexaManager.java:594)
at com.willblaschko.android.alexa.interfaces.speechrecognizer.SpeechSendAudio.sendAudio(SpeechSendAudio.java:54)
at com.willblaschko.android.alexa.AlexaManager$5$1$1.doInBackground(AlexaManager.java:349)
at com.willblaschko.android.alexa.AlexaManager$5$1$1.doInBackground(AlexaManager.java:345)
at android.os.AsyncTask$2.call(AsyncTask.java:304)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)

我也有同样的问题,我发现原因是sink.write()/writeTo()没有停止,因为AVS无法从语音中检测暂停/静音,看起来像是Willblaschko/AlexaAndroid使用recorder.isPausing()停止writeTo()/sink.write()。希望对您有所帮助。

我通过每次启动应用程序时重新启动下行通道服务,解决了StreamResetException问题


根据Amazon的说法,在当前会话完成后,流应该会重置。

对不起,我听不懂你在说什么,请你纠正一下。对不起,我的意思可能是问题的原因是“writeTo()”没有停止。Willblaschko使用“recorder.isPausing()'跳出循环。我修复了流重置问题,每次启动应用程序时都重新启动下行通道服务。而AVS具有检测语音结束(静音)的能力,我们可以使用stopCapture指令来停止录音。