Developer Console

Step 4: Decide on the Integration Type (VSK Fire TV)

You can implement the VSK following static or dynamic approaches depending on your app's needs. The approach you take depends on whether you always report the same voice capabilities regardless of the user's state (e.g., logged in, subscribed), or whether the user's capabilities change based on their state. You can also mix the two approaches, offering some static capabilities (e.g., search and browse) and other dynamic capabilities (e.g., media playback).

Sample App Notes

If you're just exploring the sample app, you do not need to decide which implementation type to follow. The sample app reports SearchAndDisplayResults and SearchAndPlay in both static and dynamic capabilities. With PlaybackController, however, the capabilities differ. Static capabilities include Play, Pause, and Stop; dynamic capabilities include Play, Pause, Stop, Resume, Next, Previous, FastForward, Rewind, and StartOver. Dynamic capabilities also include support for directives from SeekController, KeypadController, and ChannelController.

App-only Implementation Options

The app-only implementation options are as follows:

  • Static capabilities integration: With static capabilities, all content in your app is searchable and playable for free, with no user authentication needed. The user's capabilities never change based on the login state — all capabilities in your app (e.g., browse, search, playback) are supported for all users. The VSK Agent Client Library is not required in this integration. Details for configuring static capabilities are provided in Step 5: Report Your App's Static Capabilities.

  • Dynamic capabilities integration. Content that users can access depends on their state (e.g., signed in) and subscription level (e.g., premium subscriber). For example, if users have a sports subscription, they might receive access to extra channels or content. This integration either requires the VSK Agent Client Library (recommended) or the VSKApplicationAgentAPI (not recommended) to dynamically report the user's capabilities. Details for configuring dynamic capabilities are provided in Step 6: Report Your App's Dynamic Capabilities.

  • Mix and match static and dynamic capabilities. You don't have to choose either static or dynamic. Your app can have some static capabilities and some dynamic capabilities. For example, you might want to provide search and display capabilities to all users regardless of whether they are signed in, as it would allow users to browse the content in your app. But to allow media playback, you could restrict this capability based on the user's state (signed in) and other factors (such as their subscription level).

As you go through the documentation, the high-level implementation workflow is the same for all integration types. However, if you're not implementing static capabilities, you can skip Step 5: Report Your App's Static Capabilities. If you're not implementing dynamic capabilities, you can skip Step 6: Report Your App's Dynamic Capabilities.

Next Steps

Go to the next step: Step 5: Report Your App's Static Capabilities.

Last updated: Mar 05, 2021