On Amazon Fire TV, inside WebView, Video, HTML5 audio and Web Audio API playback do not work.
The playback call (video.play(), audio.play() or AudioContext.start()) resolves without throwing any error, but no sound or video is played.
App Name: N/A App Link on Amazon Appstore: N/A
Bug Severity
Select one that applies
Impacts operation of app
Blocks current development
Improvement suggestion
Issue with documentation (If selected, please share the doc link and describe the issue)
Other
2. Steps to Reproduce
Load a simple HTML page inside a WebView on Fire TV.
Attempt to play any audio or video element.
Observe the behavior when playback is triggered automatically or programmatically via JavaScript (audio.play() / video.play()).
3. Observed Behavior
No audio or video is played.
No errors or exceptions are thrown in the console.
[wants]
[[wants.service]]
id = "com.amazon.webview.renderer_service"
[[wants.service]]
id = "com.amazon.media.server"
[[wants.service]]
id = "com.amazon.audio.stream"
const a = new Audio('https://www.w3schools.com/html/horse.mp3');
try {
await a.play();
console.log('Audio started');
} catch (err) {
console.error('Play error:', err);
}
Our team has investigated this issue and identified the root cause. The problem was due to missing permissions in app’s manifest file. We’ve tested the fix and can confirm that audio and video now work correctly in WebView on Fire TV.
Solution: Add Missing Services and Privileges
Please update your manifest.toml file to include these additional services and privileges:
[[wants.service]]
id = "com.amazon.mediametrics.service" # Required for metrics service
[[wants.service]]
id = "com.amazon.gipc.uuid.*"
[[wants.service]]
id = "com.amazon.media.playersession.service"
[[wants.privilege]]
id = "com.amazon.devconf.privilege.accessibility" # Required for captions
[[wants.service]]
id = "com.amazon.mediabuffer.service"
[[wants.service]]
id = "com.amazon.mediatransform.service"
[[wants.service]]
id = "com.amazon.audio.control"
[[wants.service]]
id = "com.amazon.audio.system"
Also add this to your [offers] section:
[offers]
[[offers.service]]
id = "com.amazon.gipc.uuid.*"
Next Steps:
Update your manifest.toml with the above permissions
Rebuild and test your app
The audio and video playback should now work as expected
We’ve verified this fix resolves the issue where video.play() and audio.play() calls were resolving without errors but producing no output.
Thanks for helping us improve the Vega platform, and please let us know if you need any clarification on these changes.
Thank you for your quick response. Your solution helped partially, but not completely.
The AudioContext doesn’t work at all. It behaves very strangely — when I try to play a sound using the AudioContext, nothing is heard. However, if I play a sound through an HTMLAudioElement, then both the Audio element and the AudioContext sounds start playing correctly. For example, if I let background music play through an Audio element and then play sounds through the AudioContext on top of it, they work fine. It also works temporarily if I start playback via an Audio element and then pause it — for a short time afterward, the AudioContext audio continues to work.
The solution for Audio and Video elements works, but after some time (e.g. when playing multiple audio elements and then switching to video), both audio and video playback stop working — the video turns into a black screen and the sound stops completely. Only restarting the app helps. I can’t pinpoint exactly when this happens.
Do you have any idea what might be causing this?
Since this thread discusses what looks like the same problem, could someone from the Amazon team please also review my report? It might help confirm whether the issue affects React Native on Fire OS as well.
Thanks for checking in. The team is reviewing the issue and will provide updates on your original post so everything stays in one place. You can expect the follow-up there.