         }
     }
 
+    #if os(tvOS)
+    private let minSizeToShowSubtitle = CGSize(width: 560, height: 312)
+    #else
+    private let minSizeToShowSubtitle = CGSize(width: 280, height: 156)
+    #endif
+
+    private var lastSelectedSubtitle: MediaOption?
+
+    private func hideSubtitleForSmallScreen() {
+        if view.frame.width < minSizeToShowSubtitle.width || view.frame.height < minSizeToShowSubtitle.height {
+            self.selectedSubtitle = MediaOption.offSubtitle
+        } else {
+            self.selectedSubtitle = lastSelectedSubtitle
+        }
+    }
+
     open override var selectedSubtitle: MediaOption? {
         get {
             guard subtitles?.isEmpty == false else { return nil }

        }
        set {
            if newValue == MediaOption.offSubtitle {
                hideSubtitle()
            } else {
                let newOption = newValue?.avMediaSelectionOption
                setMediaSelectionOption(newOption, characteristic: .legible)
            }

            triggerMediaOptionSelectedEvent(option: newValue, event: .didSelectSubtitle)

        var isFirstSelection = false
        let defaultSubtitle = defaultMediaOption(for: subtitles, with: defaultSubtitleLanguage) ?? mediaSelectionGroup(.legible)?.defaultOption
        if let selectedOption = defaultSubtitle, !selectedCharacteristics.contains(.legible) {
            lastSelectedSubtitle = MediaOptionFactory.fromAVMediaOption(selectedOption, type: .subtitle)
            isFirstSelection = true
            setMediaSelectionOption(selectedOption, characteristic: .legible)
            hideSubtitleForSmallScreen()
        }
        trigger(.didFindSubtitle, userInfo: ["subtitles": AvailableMediaOptions(subtitles, hasDefaultSelected: isFirstSelection)])
    }
