App Name: Orchestra Lens
SDK version you are referring to for this feature request: Vega v0.23 / v0.24
React Native version you are referring for this feature request: React Native Kepler 4.0.1 (RN 0.83.0)
App Link on Amazon Appstore (found through Developer Console > Actions column in App List > View on Amazon.com): N/A — hackathon prototype, not yet published
Is your feature request related to a problem?
While implementing URL-based MP4 playback for a Fire TV hackathon project, I found it difficult to determine the recommended video rendering pattern from the Vega documentation.
Some documentation examples use VideoPlayer + KeplerVideoView, while other pages describe KeplerVideoSurfaceView with setSurfaceHandle(). The KeplerVideoSurfaceView API documentation also appears to describe it mainly in the context of pre-buffering / multiple-player scenarios, while newer documentation uses it for ordinary URL playback.
My environment is React Native Kepler 4.0.1 (RN 0.83.0) with @amazon-devices/react-native-w3cmedia 2.3.2.
This made it difficult to identify which implementation should be treated as the recommended reference pattern.
(Write your answer here.)
Describe the solution you’d like
Please add a version-specific compatibility/reference table for Vega media playback that clearly shows:
when to use KeplerVideoView
when to use KeplerVideoSurfaceView
when setSurfaceHandle() is required
the recommended pattern for ordinary URL playback
the recommended pattern for MSE playback
the recommended pattern for pre-buffering / multiple players
whether any of these approaches are legacy or deprecated
It would also help if the implementation guides and API reference pages cross-linked to one canonical example for each supported Vega version.
(Describe your proposed solution here.)
Is this a blocker? Describe alternatives you’ve considered
This was not ultimately a blocker, but it caused substantial debugging time.
My application initially returned MEDIA_ERR_SRC_NOT_SUPPORTED (code 4). To isolate the issue, I created minimal playback tests and compared the different documented rendering approaches.
I then installed Java 21, built Amazon’s unmodified vega-video-sample, and confirmed that the official sample successfully plays video in the same Vega Virtual Device.
My workaround is to use the working official sample as the reference implementation and compare my application against it rather than relying on individual documentation pages alone.
(Write your answer here.)
Additional context
This was encountered while building Orchestra Lens for the Build, Ship, Shape Amazon Developer Hackathon.
Environment:
Apple Silicon Mac
Vega Virtual Device
React Native Kepler 4.0.1 / RN 0.83.0
@amazon-devices/react-native-w3cmedia 2.3.2
Java 21
Amazon’s unmodified vega-video-sample successfully builds and plays video in this environment, so I am not reporting that Vega video playback itself is broken. The request is specifically for clearer, version-specific guidance about the recommended media rendering architecture.
(Write your answer here.)