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).
If you're just exploring the sample app, you do not need to decide which implementation type to follow. The sample app reports
SearchAndPlayin 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
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.
There's one more option (not yet released) that will be added soon: "Static Capabilities with Login State Integration." With this option, all content can be searchable and playable only after user authentication. This is probably the most common scenario for many partners. In this model, you report the user's login state through an intent. The VSK Agent Client Library is not required in this integration.
Go to the next step: Step 5: Report Your App's Static Capabilities.