TtsEngineSsml.GetOutputFormat(SpeakOutputFormat, IntPtr) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Retourneert de best overeenkomende audio-uitvoer die wordt ondersteund door een gegeven synthetiseren motorreactie op een aanvraag naar de synthesizer-engine voor de ondersteuning van een bepaalde uitvoerindeling.
public:
abstract IntPtr GetOutputFormat(System::Speech::Synthesis::TtsEngine::SpeakOutputFormat speakOutputFormat, IntPtr targetWaveFormat);
public abstract IntPtr GetOutputFormat(System.Speech.Synthesis.TtsEngine.SpeakOutputFormat speakOutputFormat, IntPtr targetWaveFormat);
abstract member GetOutputFormat : System.Speech.Synthesis.TtsEngine.SpeakOutputFormat * nativeint -> nativeint
Public MustOverride Function GetOutputFormat (speakOutputFormat As SpeakOutputFormat, targetWaveFormat As IntPtr) As IntPtr
Parameters
- speakOutputFormat
- SpeakOutputFormat
Geldig lid van de SpeakOutputFormat opsomming die het type aangevraagde audio-uitvoerindeling aangeeft.
- targetWaveFormat
-
IntPtr
nativeint
Een aanwijzer naar een struct detailinstelling voor het type audio-indeling dat door het speakOutputFormat argument is aangevraagd.
Retouren
nativeint
Retourneert een geldig exemplaar IntPtr dat verwijst naar een struct met gedetailleerde informatie over de uitvoerindeling.
Voorbeelden
Met de onderstaande voorbeeld-implementatie worden geselecteerde invoer gevalideerd, waarbij deze worden gebruikt als deze binnen toleranties vallen, anders met behulp van standaardwaarden.
public IntPtr GetOutputFormat(SpeakOutputFormat format, IntPtr targetWaveFormat) {
WaveFormat waveFormat = new WaveFormat();
WaveFormat rq=new WaveFormat();
Marshal.PtrToStructure(targetWaveFormat,rq);
waveFormat.AvgBytesPerSec = AvgBytesPerSec Min < rq.AvgBytesPerSec && rq.AvgBytesPerSec < AvgBytesPerSecMax? rq.AvgBytesPerSec : 3200;
waveFormat.BitsPerSample = BitsPerSampleMin < rq.AvgBytesPerSec && rq.BitsPerSample < BitsPerSampleMax ? rq.AvgBytesPerSec : 3200; 16;
waveFormat.BlockAlign = 2;
waveFormat.Channels = 1;
waveFormat.FormatTag = 1;
waveFormat.SamplesPerSec = 16000;
waveFormat.Size = 0;
IntPtr wfx = Marshal.AllocCoTaskMem(Marshal.SizeOf(waveFormat));
Marshal.StructureToPtr(waveFormat, wfx, false);
//Console.WriteLine ("GetOutputFormat called");
return wfx;
}
internal struct WaveFormat {
public Int16 FormatTag;
public Int16 Channels;
public int SamplesPerSec;
public int AvgBytesPerSec;
public Int16 BlockAlign;
public Int16 BitsPerSample;
public Int16 Size;
}
Opmerkingen
De structuur die door de methode wordt gebruikt targetWaveFormat en geretourneerd, moet compatibel zijn met de WAVEFORMATEX beschikbare onder SAPI en de geretourneerde waarde moet worden toegewezen met behulp van CoTaskMemAlloc.
De struct moet functionaliteit bieden die gelijk is aan:
internal struct WaveFormat
{
public Int16 FormatTag;
public Int16 Channels;
public int SamplesPerSec;
public int AvgBytesPerSec;
public Int16 BlockAlign;
public Int16 BitsPerSample;
public Int16 Size;
}
Notities voor uitvoerders
Object dat wordt overgenomen van TtsEngineSsml , moet de aangevraagde uitvoerindeling onderzoeken zoals opgegeven door targetWaveFormat en retourneert de dichtstbijzijnde indeling die wordt ondersteund.