5

AVSpeechSynthesis を学習しようとしています。コードは iOS シミュレーター (iPad と iOS の両方) で正常に動作しますが、テキスト読み上げ機能は私の iPad ではまったく動作しません。これが私のコードです。

    - (void)viewDidLoad
{

[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.



//Load Model
    self.string = @"Hello World";
    self.utterance = [[AVSpeechUtterance alloc] initWithString:self.string];
    self.utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-US"];
    self.utterance.rate = (float) 0.25;

    //Load UI
    self.textLabel.text = self.string;


}

- (IBAction)startSpeaking:(id)sender {

    self.speechSynthesizer = [[AVSpeechSynthesizer alloc] init];

    if ([self.speechSynthesizer isSpeaking]) {

        [self.speechSynthesizer pauseSpeakingAtBoundary:AVSpeechBoundaryWord];


    } else {

        [self.speechSynthesizer speakUtterance:self.utterance];

    }    
}

更新: AVSpeechSyntheSizer は動作してい ますが、音が出ないため、UI に AVSpeechUtterance と同じテキストを持つ UILabel があります。AVSpeechSynthesizerDelegate を実装して、startSpeaking: を押すと、テキスト ラベルが現在の単語を赤に変えるようにしました。AVSpeechSynthesizer がデリゲート呼び出しを行っているため、動作しているに違いないことはわかっていますが、なぜそれが聞こえないのかわかりません。音量は上がっており、他のアプリはオーディオを再生していません。

4

2 に答える 2

11

電話をマナーモードにしていませんか?これにより、シンセサイザーも無音になります。

于 2014-06-18T21:21:39.717 に答える
4

Muteお使いの携帯電話のモードが原因で動作していません。iOS 7 で「ミュートをオン」にするには、次の手順に従う必要があります。

  • Settingあなたのオプションに行きます
  • に行くAccessibility
  • に行くAssistiveTouch
  • AssistiveTouchスイッチボタンからオプションをオンにする
  • 移動支援アイコンがデバイスの画面に表示されます。
  • それをタップして、さらにオプションを展開します
  • そこから選択DeviceしてタッチUn muteオプションを選択します。

プロジェクトを実行して、うまくいくことを願っています。

PS: (iOS 8.0 では、このコードは機能しません。予期しないバグのために、iOS8.1 から削除され、完全に機能するようになったためです) 機能することを願っています。:)

于 2015-01-06T09:39:59.153 に答える