Subtitles enhance the viewing experience by providing text-based translations or transcriptions for audio content.

In the Wowza Flowplayer Apple SDK, we support using WebVTT (Web Video Text Tracks) for subtitles. WebVTT files contain time-stamped text tracks that can be synchronized with video playback. By leveraging the WebVTT format and the flexibility of the Apple SDK, you can manage subtitles within your video playback experience while providing multilingual support and accessibility options to users.

The subtitle approach you pick depends on the type of media you're integrating into your application. For iOS projects, you need to provide a valid WebVTT URL and enable the HTML Subtitles plugin for the player to display subtitles.

For information related to listening to events, managing media playback, and handling errors, see the following pages:

Add subtitles for external media

When using the MediaExternal type to load external media files, you must provide a valid WebVTT URL within your master file. This URL should point to the WebVTT file location containing the subtitle tracks for your media. The SDK fetches the WebVTT file, handles everything behind the scenes, and displays subtitles during video playback.


For proper rendering and synchronization of the subtitle tracks, ensure that your WebVTT files comply with the WebVTT specification. WebVTT files typically include time intervals and text entries that indicate each subtitle's display duration and content.

Enable the subtitles plugin

Applies to: iOS

When you enable the HTML Subtitles plugin, users can see subtitles and the subtitles menu as part of the player's controls. They can toggle subtitles on or off and select different subtitle tracks if available.

In the following example, we use the ControlsConfig configuration class to manage the subtitle controls for our player instance. This sets the controls configuration for the flowplayerView object and enables the subtitle controls in the player.


// Create an instance of ControlsConfig with the create() method
// Assign it to configBuilder constant
let configBuilder = ControlsConfig.create()

// Enable the subtitles plugin by calling the enablePlugins() method
// Pass an array with the plugin name as a parameter

// Build the configuration object by calling the build() method on the configBuilder object
// Assign it to the flowplayerView.controlsConfig property
flowplayerView.controlsConfig =

More resources

For more information, see these resources: