AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Thread mit OLEVariant

Ein Thema von ReDoX · begonnen am 12. Feb 2005 · letzter Beitrag vom 12. Feb 2005
Antwort Antwort
ReDoX
(Gast)

n/a Beiträge
 
#1

Thread mit OLEVariant

  Alt 12. Feb 2005, 16:35
Hi,
Ich die sprachausgabe in einen Thread verlegen:

Delphi-Quellcode:
type

  TReadThread = class(TThread)
 private
  FText: String;
 protected
  procedure Execute; override;
 public
  property Text: String read FText write FText;
end;


procedure TReadThread.Execute;
var oleVoice: OLEVariant;
begin
    oleVoice := CreateOLEObject('SAPI.SpVoice');
    oleVoice.Speak(ftext);
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
   ReadThread := TreadThread.Create(true);
   ReadThread.FreeOnTerminate := True;
   ReadThread.Text := 'Das ist ein Test';
   ReadThread.Resume;
end;

Jetzt bekomme ich immer einen fehler
Zitat:
---------------------------
Debugger Exception Notification
---------------------------
Project PowerConsole.exe raised exception class EOleSysError with message 'CoInitialize wurde nicht aufgerufen'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
Was mache ich falsch?

Mfg ReDoX
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Thread mit OLEVariant

  Alt 12. Feb 2005, 16:47
Hi,

die Fehlermeldung sagt doch bereits alles. Du musst die Prozedur "CoInitialize" aufrufen.

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Thread mit OLEVariant

  Alt 12. Feb 2005, 16:59
Hallo,
bevor der Thread terminiert CoUninitialize nicht vergessen.

[Edit] Das hat damit zu tun, dass jeder Thread sein eigenes Apartment anmelden muss.
Das passiet mit dem Aufruf von Coinitialize.[/EDIT]
I come from outer space to save the human race
  Mit Zitat antworten Zitat
ReDoX
(Gast)

n/a Beiträge
 
#4

Re: Thread mit OLEVariant

  Alt 12. Feb 2005, 17:36
Ich habe es jetzt so

Delphi-Quellcode:
procedure TReadThread.Execute;
 var oleVoice: OLEVariant;
begin
    CoInitialize(nil);
     try
      oleVoice := CreateOLEObject('SAPI.SpVoice');
      oleVoice.Speak(ftext);
       finally
        CoUninitialize;
     end;
end;
gemacht.
Und was soll ich sagen es funktioniert
Danke!
Mfg ReDoX
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Thread mit OLEVariant

  Alt 12. Feb 2005, 17:51
Hallo ReDoX,
spricht die SAPI von Haus aus nicht Englisch? Oder hast Du eine deutsche TextToSpeech Engine.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
ReDoX
(Gast)

n/a Beiträge
 
#6

Re: Thread mit OLEVariant

  Alt 12. Feb 2005, 18:01
Hallo Jens,
die SAPI spricht bei mir auch englisch aber es war ja nur ein test ,weil mir auf englisch nichts eingefallen ist .
Aber jetzt wir der text ja vom Benutzter gewählt.
Gibt es die SAPI auch auf deutsch?
Mfg ReDoX
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Thread mit OLEVariant

  Alt 12. Feb 2005, 18:04
Hallo ReDoX,
klar gibt es deutsche TextToSpeech (tts) Engines.
Sie mal auf den MS-Agent Download Seiten. Ich habe die deutsche Engine früher oft zusammen mit dem Agent verwendet. Wenn Du es erfolgreich mit dem SAPI verwenden kannst, dann bitte hier dokumentieren.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#8

Re: Thread mit OLEVariant

  Alt 12. Feb 2005, 19:29
Hallo,
habe gerade harausgefunden, dass die deutsche TTS-Engine von Lernout&Hauspie, die es auf den Agent Seiten gibt für das SAPI 4.0 sind und nicht mit dem auf XP installierten SAPI 5.0 zusammenarbeiten.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:26 Uhr.
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