Export (0) Print
Expand All

BookmarkReachedEventArgs Class

Returns data from the BookmarkReached event.

Namespace:  System.Speech.Synthesis
Assembly:  System.Speech (in System.Speech.dll)

public class BookmarkReachedEventArgs : PromptEventArgs

The BookmarkReachedEventArgs type exposes the following members.

  NameDescription
Public propertyAudioPositionGets the time offset at which the bookmark was reached.
Public propertyBookmarkGets the name of the bookmark that was reached.
Public propertyCancelledGets a value indicating whether an asynchronous operation has been canceled. (Inherited from AsyncCompletedEventArgs.)
Public propertyErrorGets a value indicating which error occurred during an asynchronous operation. (Inherited from AsyncCompletedEventArgs.)
Public propertyPromptGets the prompt associated with the event. (Inherited from PromptEventArgs.)
Public propertyUserStateGets the unique identifier for the asynchronous task. (Inherited from AsyncCompletedEventArgs.)
Top

  NameDescription
Public methodEquals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetHashCodeServes as the default hash function. (Inherited from Object.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Protected methodRaiseExceptionIfNecessaryRaises a user-supplied exception if an asynchronous operation failed. (Inherited from AsyncCompletedEventArgs.)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Top

An instance of BookmarkReachedEventArgs is created when the SpeechSynthesizer object raises the BookmarkReached event. The SpeechSynthesizer raises the BookmarkReached event when it encounters a bookmark while processing any of the Speak, SpeakAsync, SpeakSsml, or SpeakSsmlAsync methods. To obtain the name and location of the bookmark that triggered the event, access the Bookmark and the AudioPosition properties in the handler for the event.

The following example creates a prompt that includes two bookmarks and sends the output to a WAV file for playback. The handler for the BookmarkReached event writes the name of the bookmark and its position in the audio stream when the event was raised to the console.

using System;
using System.Speech.Synthesis;

namespace SampleSynthesis
{
  class Program
  {
    static void Main(string[] args)
    {

      // Initialize a new instance of the SpeechSynthesizer.
      using (SpeechSynthesizer synth = new SpeechSynthesizer())
      {

        // Configure the audio output. 
        synth.SetOutputToWaveFile(@"C:\test\weather.wav");

        // Create a SoundPlayer instance to play the output audio file.
        System.Media.SoundPlayer m_SoundPlayer =
          new System.Media.SoundPlayer(@"C:\test\weather.wav");

        // Build a prompt and append bookmarks.
        PromptBuilder builder = new PromptBuilder(
          new System.Globalization.CultureInfo("en-US"));
        builder.AppendText(
          "The weather forecast for today is partly cloudy with some sun breaks.");
        builder.AppendBookmark("Daytime forecast");
        builder.AppendText(
          "Tonight's weather will be cloudy with a 30% chance of showers.");
        builder.AppendBookmark("Nightime forecast");

        // Add a handler for the BookmarkReached event.
        synth.BookmarkReached +=
          new EventHandler<BookmarkReachedEventArgs>(synth_BookmarkReached);

        // Speak the prompt and play back the output file.
        synth.Speak(builder);
        m_SoundPlayer.Play();
      }

      Console.WriteLine();
      Console.WriteLine("Press any key to exit...");
      Console.ReadKey();
    }

    // Write the name and position of the bookmark to the console.
    static void synth_BookmarkReached(object sender, BookmarkReachedEventArgs e)
    {
      Console.WriteLine("Bookmark ({0}) reached at: {1} ",
        e.Bookmark, e.AudioPosition);
    }
  }
}

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Show:
© 2014 Microsoft