Video loading inside webview

video loading in webview with 90 degree manual orientation does not work.. video plays in landscape only. tried in signage stick, firestick with android 9 and 11 both version. any insight?

Hello @Smit_Nebhwani

Welcome to Amazon Developer Community !!

Fire TV’s display orientation is permanently locked to landscape. Per the Display and Layout documentation

  • Display.getRotation() always returns 0 (ROTATION_0)
  • Screen orientation is always land — “TV apps are always landscape”
  • The orientation never changes, regardless of what you set in your manifest or code

When you rotate the display 90 degrees (e.g., for a portrait signage setup), the UI layer (Views, WebView HTML/CSS content) can be rotated using CSS transforms or Android View rotation. However, video playback is the problem - video on Fire TV typically uses a hardware video overlay (SurfaceView) that is rendered directly by the hardware decoder. This hardware overlay:

  • Does not respect Android’s View rotation or CSS transforms
  • Is composited directly onto the display framebuffer in landscape orientation
  • Cannot be rotated by the app layer

This is why your WebView content may appear rotated correctly, but the video within it always plays in landscape.

This applies to all Fire TV devices (signage stick, Fire Stick on Fire OS 7/Android 9 and Fire OS 8/Android 11), because the hardware overlay behavior is consistent across the platform.

Possible workarounds:

  1. CSS transform on the video element - Apply a 90-degree CSS rotation to the
    video element within the WebView. This may work if the WebView uses software rendering for video rather than a hardware overlay:
video {                                                                    
       transform: rotate(90deg);                                                
       transform-origin: center center }

Note: This is unlikely to work if the video is rendered via a hardware overlay, but worth testing.

  1. Disable hardware overlay for WebView — Force software rendering:
    webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
    This may allow rotation to apply to video, but will significantly impact performance.

For further assistance, please share:

  • How you’re currently applying the 90-degree rotation (manifest, code, CSS, or display setting?)
  • Whether the non-video WebView content appears correctly rotated
  • Your specific signage display model

Warm regards,
Ivy