From 284544424b4dd8533d2e834833ba1d1e2ff4c037 Mon Sep 17 00:00:00 2001 From: Jonathan Chang Date: Sat, 6 Aug 2016 08:24:47 -0700 Subject: [PATCH 1/2] Set synthesizer to nil on cancelation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit …otherwise no speech will be playable after stop() is called. --- SpeechSynthesizer.m | 1 + 1 file changed, 1 insertion(+) diff --git a/SpeechSynthesizer.m b/SpeechSynthesizer.m index f7de53c..faf790d 100644 --- a/SpeechSynthesizer.m +++ b/SpeechSynthesizer.m @@ -146,6 +146,7 @@ -(void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer willSpeakRangeOfSpee -(void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didCancelSpeechUtterance:(AVSpeechUtterance *)utterance { NSLog(@"Speech cancelled"); + self.synthesizer = nil; } @end From 4fb3d8c13d64cfba3c20cb19637982fbe7dd791e Mon Sep 17 00:00:00 2001 From: Jonathan Chang Date: Tue, 16 Aug 2016 23:57:29 -0700 Subject: [PATCH 2/2] Emit finishspeechutterance event --- SpeechSynthesizer.m | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/SpeechSynthesizer.m b/SpeechSynthesizer.m index faf790d..b98f543 100644 --- a/SpeechSynthesizer.m +++ b/SpeechSynthesizer.m @@ -1,9 +1,12 @@ #import "SpeechSynthesizer.h" #import "RCTUtils.h" #import "RCTLog.h" +#import "RCTEventDispatcher.h" @implementation SpeechSynthesizer +@synthesize bridge = _bridge; + RCT_EXPORT_MODULE() // Speak @@ -116,6 +119,7 @@ -(void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didFinishSpeechUtter { NSLog(@"Speech finished"); self.synthesizer = nil; + [self.bridge.eventDispatcher sendAppEventWithName:@"FinishSpeechUtterance" body:@{}]; } // Started Handler