Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Sprachausgabe Mobile XE5 (https://www.delphipraxis.net/178361-sprachausgabe-mobile-xe5.html)

zeras 3. Jan 2014 18:01

Sprachausgabe Mobile XE5
 
Hat jemand einen Codeschnipsel, wie man Texte (wenn möglich deutsch) unter Mobile XE5 (Android) ausgeben kann?

zeras 3. Jan 2014 18:42

AW: Sprachausgabe Mobile XE5
 
Hab schon was gefunden.
Unter hier gibt es eine Demo.
Während das Startes wird gleich noch die deutsche Sprachdatei geladen und im Quelltext dann nur noch auf Deutsch stellen und schon kann's losgehen.

greenmile 23. Aug 2014 08:32

AW: Sprachausgabe Mobile XE5
 
Der Link funktioniert nicht, hast Du ev. einen funktionierenden?

zeras 23. Aug 2014 10:14

AW: Sprachausgabe Mobile XE5
 
Schaue mal unter hier nach.

greenmile 23. Aug 2014 11:39

AW: Sprachausgabe Mobile XE5
 
Super, danke. Hast Du auch ein Beispiel?

zeras 23. Aug 2014 11:53

AW: Sprachausgabe Mobile XE5
 
Delphi-Quellcode:
unit Sprachausgabe;

interface

uses
  Androidapi.JNI.TTS,
  FMX.Memo,
  AndroidAPI.JNIBridge,

  Androidapi.JNI.JavaTypes,
  FMX.Helpers.Android,
  Androidapi.JNI.GraphicsContentViewText,
  FMX.Dialogs;

type
    TttsOnInitListener = class(TJavaLocal, JTextToSpeech_OnInitListener)
    private
      //[weak] FParent : TForm1;
    public
      //constructor Create(AParent : TForm1);
      constructor Create;
      procedure onInit(status: Integer); cdecl;
    end;


  var
  ttsListener : TttsOnInitListener;
  tts : JTextToSpeech;

  procedure SpeakOut(s : String);


implementation


constructor TttsOnInitListener.Create;
begin

end;

procedure TttsOnInitListener.onInit(status: Integer);
var
  Result : Integer;

begin
  if (status = TJTextToSpeech.JavaClass.SUCCESS) then
  begin

   result := tts.setLanguage(TJLocale.JavaClass.GERMAN);
   if (result = TJTextToSpeech.JavaClass.LANG_MISSING_DATA) or
      (result = TJTextToSpeech.JavaClass.LANG_NOT_SUPPORTED) then
     ShowMessage('This Language is not supported')
   else
   begin

   end;
  end
  else
    ShowMessage('Initilization Failed!');
end;

procedure SpeakOut(s : String);
var
  text : JString;

begin

  text := StringToJString(s); //Format('Es ist jetzt %s',[s]));

  tts.setSpeechRate(0.75);

  tts.speak(text, TJTextToSpeech.JavaClass.QUEUE_FLUSH, nil);
end;

end.
Und das ganze dann mit

Delphi-Quellcode:
 SpeakOut(text);
starten.

greenmile 23. Aug 2014 12:17

AW: Sprachausgabe Mobile XE5
 
Super, danke, funktioniert aber irgendwie nicht unter XE6 mit einem Galaxy 5. Muss ich die Komponente erst erstellen oder reicht ein "SPeakOut"?

zeras 23. Aug 2014 12:22

AW: Sprachausgabe Mobile XE5
 
Zitat:

Zitat von greenmile (Beitrag 1269643)
Super, danke, funktioniert aber irgendwie nicht unter XE6 mit einem Galaxy 5. Muss ich die Komponente erst erstellen oder reicht ein "SPeakOut"?

Ich habe die Komponente einfach mit ins Projekt gehängt und dann mit SpeakOut den Text sprechen lassen. Habe aber XE5 und ein Nexus Tablet.

greenmile 23. Aug 2014 12:37

AW: Sprachausgabe Mobile XE5
 
Hmmm ... Brauche ich dafür ev. zusätzliche Rechte?

zeras 23. Aug 2014 12:51

AW: Sprachausgabe Mobile XE5
 
Zitat:

Zitat von greenmile (Beitrag 1269646)
Hmmm ... Brauche ich dafür ev. zusätzliche Rechte?

Habe bei mir nichts gefunden zu zusätzlichen Rechten.
Kannst du im Handy oder Tablet mal einen Text von Android sprechen lassen. Geht das?
Mein Tablet ist derzeit down (Akku leer). Kann daher nicht weiter helfen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:59 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz