訊飛音声sdkセグメント再生テキスト
1442 ワード
訊飛音声合成sdkにおけるセグメント再生テキスト機能の実現.
1.配列を作成し、セグメント化して再生するテキストを配列に入れる
2.まず配列の最初のレコードを再生します.[_iFlySpeechSynthesizer startSpeaking:@「音声テスト」];
3.onCompleteメソッドで次のレコードを再生
_iFlySpeechSynthesizer4.によってiFlySpeechSynthesizerは、音声再生のために個別のスレッドを配信しており、onCompleteでは入手できません.iFlySpeechSynthesizerのコンテキストですので、次のコードを使用します.
1.配列を作成し、セグメント化して再生するテキストを配列に入れる
2.まず配列の最初のレコードを再生します.[_iFlySpeechSynthesizer startSpeaking:@「音声テスト」];
3.onCompleteメソッドで次のレコードを再生
_iFlySpeechSynthesizer4.によってiFlySpeechSynthesizerは、音声再生のために個別のスレッドを配信しており、onCompleteでは入手できません.iFlySpeechSynthesizerのコンテキストですので、次のコードを使用します.
// ,
-(void) speechWithArray{
if(self.speech_content_array == nil || [self.speech_content_array count] <= 0 ){
return ;
}
[self speechWithString:self.speech_content_array[0] ];
}
-(void) speechWithString:(NSString *) content{
DLog(@" %@",content);
[_iFlySpeechSynthesizer startSpeaking:content];
}
/**
@param error
*/
- (void) onCompleted:(IFlySpeechError*) error{
self.current_speech_number ++;
if (self.current_speech_number < [self.speech_content_array count]){
[self.audioPlayer play];
[self performSelectorOnMainThread:@selector(speechWithString:) withObject:(NSString *)self.speech_content_array[self.current_speech_number] waitUntilDone:NO];
}else{
[self.voiceHud dismissView];
current_msc_status = MSC_Ready;
}
}
<span style="color:#ff0000;">[self performSelectorOnMainThread:@selector(speechWithString:) withObject:(NSString *)self.speech_content_array[self.current_speech_number] waitUntilDone:NO];</span>
これがポイントです.