public override bool ShouldStartLoad(UIWebView webView, NSURLRequest request, UIWebViewNavigationType navigationType)
        {
            Debug.Log("ShouldStartLoad");
            // handle the special url schema as a way to communicate from the web
            NSURL url = request.URL();

            if (url != null && url.Scheme().Equals("u3dxt"))
            {
                object[] paths = url.PathComponents();
                Debug.Log(paths.Length);
                string command = paths[1] as string;
                Debug.Log("command: " + command);
                if (command.Equals("say"))
                {
                    string phrase = paths[2] as string;
                    Debug.Log("Phrase: " + phrase);
                    SpeechXT.Speak(phrase);
                }

                // do not actually load this
                return(false);
            }
            else
            {
                return(true);
            }
        }
 public override void DidStart(AVSpeechSynthesizer synthesizer, AVSpeechUtterance utterance)
 {
     SpeechXT._OnStarted(utterance);
 }
 public override void WillSpeakRangeOfSpeechString(AVSpeechSynthesizer synthesizer, NSRange characterRange, AVSpeechUtterance utterance)
 {
     SpeechXT._OnWillSpeak(utterance, characterRange);
 }
 public override void DidPause(AVSpeechSynthesizer synthesizer, AVSpeechUtterance utterance)
 {
     SpeechXT._OnPaused(utterance);
 }
 public override void DidFinish(AVSpeechSynthesizer synthesizer, AVSpeechUtterance utterance)
 {
     SpeechXT._OnFinished(utterance);
 }
 public override void DidContinue(AVSpeechSynthesizer synthesizer, AVSpeechUtterance utterance)
 {
     SpeechXT._OnContinued(utterance);
 }
 public override void DidCancel(AVSpeechSynthesizer synthesizer, AVSpeechUtterance utterance)
 {
     SpeechXT._OnCancelled(utterance);
 }
Exemple #8
0
    void OnGUI()
    {
        KitchenSink.OnGUIBack();

        // display the currently speaking text
        GUI.Label(new Rect(50, 50, Screen.width - 100, Screen.height / 4 - 60), speakingText, labelStyle);

        // ask for input
        inputText = GUI.TextField(new Rect(50, Screen.height / 4, (float)(Screen.width * 0.8 - 50), 80), inputText);

        // speak the input text
        if (GUI.Button(new Rect((float)(Screen.width * 0.8), Screen.height / 4, (float)(Screen.width * 0.2 - 50), 80), "Speak"))
        {
            SpeechXT.settings.pitchMultiplier = pitchValue;
            SpeechXT.settings.rate            = speedValue;
            SpeechXT.settings.volume          = volumeValue;
            SpeechXT.settings.voice           = AVSpeechSynthesisVoice.Voice(comboBoxList[selectedItemIndex].text);
            SpeechXT.Speak(inputText);
        }

        // combo box for selecting languages
        GUI.Label(new Rect(50, Screen.height / 4 + 100, 100, 50), "Language");
        selectedItemIndex = comboBoxControl.List(
            new Rect(150, Screen.height / 4 + 100, 100, 50), selectedItemIndex, comboBoxList, listStyle);


        GUILayout.BeginArea(new Rect(50, Screen.height / 4 + 200, Screen.width / 2 - 100, Screen.height / 4 * 3 - 250));

        // manually change pitch, speed, and volume
        pitchValue = GUILayout.HorizontalSlider(pitchValue, 0.5f, 2.0f);
        GUILayout.Label("Pitch: " + pitchValue, GUILayout.ExpandHeight(true));

        speedValue = GUILayout.HorizontalSlider(speedValue, 0.0f, 1.0f);
        GUILayout.Label("Speed: " + speedValue, GUILayout.ExpandHeight(true));

        volumeValue = GUILayout.HorizontalSlider(volumeValue, 0.0f, 1.0f);
        GUILayout.Label("Volume: " + volumeValue, GUILayout.ExpandHeight(true));

        GUILayout.EndArea();


        // predefined examples in different languages
        GUI.Label(new Rect(Screen.width / 4 * 3 - 50, Screen.height / 4 + 100, 100, 50), "Examples");

        GUILayout.BeginArea(new Rect(Screen.width / 2 + 50, Screen.height / 4 + 150, Screen.width / 4 - 60, Screen.height / 4 * 3 - 200));

        if (GUILayout.Button("American English", GUILayout.ExpandHeight(true)))
        {
            SpeechXT.settings.pitchMultiplier = 1f;
            SpeechXT.settings.rate            = 0.25f;
            SpeechXT.settings.volume          = 1f;
            SpeechXT.settings.voice           = AVSpeechSynthesisVoice.Voice("en-US");
            SpeechXT.Speak("Hello, I have Siri's voice.");
        }

        if (GUILayout.Button("Mexican Spanish", GUILayout.ExpandHeight(true)))
        {
            SpeechXT.settings.voice = AVSpeechSynthesisVoice.Voice("es-MX");
            SpeechXT.Speak("Buenos días");
        }

        GUILayout.EndArea();

        GUILayout.BeginArea(new Rect(Screen.width / 4 * 3 + 10, Screen.height / 4 + 150, Screen.width / 4 - 60, Screen.height / 4 * 3 - 200));

        if (GUILayout.Button("Aussie", GUILayout.ExpandHeight(true)))
        {
            SpeechXT.settings.voice = AVSpeechSynthesisVoice.Voice("en-AU");
            SpeechXT.Speak("Good day, mate.");
        }

        if (GUILayout.Button("French", GUILayout.ExpandHeight(true)))
        {
            SpeechXT.settings.voice = AVSpeechSynthesisVoice.Voice("fr-FR");
            SpeechXT.Speak("bonjour, mon amour.");
        }

        GUILayout.EndArea();
    }