Browse Source

added subtitle button

Signed-off-by: marinofaggiana <ios@nextcloud.com>
marinofaggiana 3 years ago
parent
commit
fa6af03a28

+ 28 - 19
iOSClient/Viewer/NCViewerMedia/NCPlayer/NCPlayerToolBar.swift

@@ -30,9 +30,10 @@ import MediaPlayer
 
 class NCPlayerToolBar: UIView {
 
-    @IBOutlet weak var playerTopToolBarView: UIView!
+    @IBOutlet weak var playerTopToolBarView: UIStackView!
     @IBOutlet weak var playerToolBarView: UIView!
     @IBOutlet weak var pipButton: UIButton!
+    @IBOutlet weak var subtitleButton: UIButton!
     @IBOutlet weak var muteButton: UIButton!
     @IBOutlet weak var playButton: UIButton!
     @IBOutlet weak var forwardButton: UIButton!
@@ -61,28 +62,32 @@ class NCPlayerToolBar: UIView {
     override func awakeFromNib() {
         super.awakeFromNib()
 
-        playerToolBarView.layer.cornerRadius = 15
-        playerToolBarView.layer.masksToBounds = true
-
         let blurEffectView = UIVisualEffectView(effect: UIBlurEffect(style: .dark))
         blurEffectView.frame = self.bounds
         blurEffectView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
         playerToolBarView.insertSubview(blurEffectView, at: 0)
-
         playerTopToolBarView.layer.cornerRadius = 10
         playerTopToolBarView.layer.masksToBounds = true
+        playerTopToolBarView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(tapTopToolBarWith(gestureRecognizer:))))
 
         let blurEffectTopToolBarView = UIVisualEffectView(effect: UIBlurEffect(style: .dark))
         blurEffectTopToolBarView.frame = playerTopToolBarView.bounds
         blurEffectTopToolBarView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
         playerTopToolBarView.insertSubview(blurEffectTopToolBarView, at: 0)
+        playerToolBarView.layer.cornerRadius = 10
+        playerToolBarView.layer.masksToBounds = true
+        playerToolBarView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(tapToolBarWith(gestureRecognizer:))))
 
         pipButton.setImage(NCUtility.shared.loadImage(named: "pip.enter", color: .lightGray), for: .normal)
         pipButton.isEnabled = false
 
         muteButton.setImage(NCUtility.shared.loadImage(named: "audioOff", color: .lightGray), for: .normal)
         muteButton.isEnabled = false
-
+        
+        subtitleButton.setImage(NCUtility.shared.loadImage(named: "captions.bubble", color: .lightGray), for: .normal)
+        subtitleButton.isEnabled = false
+        subtitleButton.isHidden = true
+        
         playbackSlider.value = 0
         playbackSlider.minimumValue = 0
         playbackSlider.maximumValue = 0
@@ -95,9 +100,13 @@ class NCPlayerToolBar: UIView {
         labelLeftTime.text = NCUtility.shared.stringFromTime(.zero)
         labelLeftTime.textColor = .lightGray
 
+        backButton.setImage(NCUtility.shared.loadImage(named: "gobackward.10", color: .lightGray), for: .normal)
         backButton.isEnabled = false
+        
         playButton.setImage(NCUtility.shared.loadImage(named: "play.fill", color: .lightGray), for: .normal)
         playButton.isEnabled = false
+        
+        forwardButton.setImage(NCUtility.shared.loadImage(named: "goforward.10", color: .lightGray), for: .normal)
         forwardButton.isEnabled = false
 
         NotificationCenter.default.addObserver(self, selector: #selector(handleInterruption), name: AVAudioSession.interruptionNotification, object: nil)
@@ -394,15 +403,11 @@ class NCPlayerToolBar: UIView {
 
     // MARK: - Action
 
-    @IBAction func buttonPlayerToolBarTouchInside(_ sender: UIButton) {
-        // nothing
-    }
-
-    @IBAction func buttonPlayerTopToolBarTouchInside(_ sender: UIButton) {
-        // nothing
-    }
-
-    @IBAction func playerPause(_ sender: Any) {
+    @objc func tapTopToolBarWith(gestureRecognizer: UITapGestureRecognizer) { }
+    
+    @objc func tapToolBarWith(gestureRecognizer: UITapGestureRecognizer) { }
+    
+    @IBAction func tapPlayerPause(_ sender: Any) {
 
         if ncplayer?.player?.timeControlStatus == .playing {
             ncplayer?.playerPause()
@@ -428,7 +433,7 @@ class NCPlayerToolBar: UIView {
         }
     }
 
-    @IBAction func setMute(_ sender: Any) {
+    @IBAction func tapMute(_ sender: Any) {
 
         let mute = CCUtility.getAudioMute()
 
@@ -438,7 +443,7 @@ class NCPlayerToolBar: UIView {
         reStartTimerAutoHide()
     }
 
-    @IBAction func setPip(_ sender: Any) {
+    @IBAction func tapPip(_ sender: Any) {
 
         guard let videoLayer = ncplayer?.videoLayer else { return }
 
@@ -459,7 +464,7 @@ class NCPlayerToolBar: UIView {
         }
     }
 
-    @IBAction func forwardButtonSec(_ sender: Any) {
+    @IBAction func tapForward(_ sender: Any) {
 
         skip(seconds: 10)
 
@@ -472,7 +477,7 @@ class NCPlayerToolBar: UIView {
         */
     }
 
-    @IBAction func backButtonSec(_ sender: Any) {
+    @IBAction func tapBack(_ sender: Any) {
 
         skip(seconds: -10)
 
@@ -485,6 +490,10 @@ class NCPlayerToolBar: UIView {
         */
     }
     
+    @IBAction func tapSubtitle(_ sender: Any) {
+        
+    }
+    
     func forward() {
 
         var index: Int = 0

+ 44 - 58
iOSClient/Viewer/NCViewerMedia/NCPlayer/NCPlayerToolBar.xib

@@ -15,78 +15,66 @@
             <rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
             <subviews>
-                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="aU7-QX-ePS" userLabel="Player Top Tool Bar">
-                    <rect key="frame" x="304" y="54" width="100" height="45"/>
+                <stackView opaque="NO" contentMode="scaleToFill" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="XfW-XC-eMf" userLabel="Player Top Tool Bar">
+                    <rect key="frame" x="299" y="54" width="105" height="35"/>
                     <subviews>
-                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="AKs-cS-3AJ" userLabel="Button Player Top Tool Bar">
-                            <rect key="frame" x="0.0" y="0.0" width="100" height="45"/>
-                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                        <button opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="a3d-ja-utA">
+                            <rect key="frame" x="5" y="5" width="25" height="25"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="25" id="TIW-zu-jSX"/>
+                                <constraint firstAttribute="width" constant="25" id="jR3-bv-VnZ"/>
+                            </constraints>
+                            <state key="normal" image="pip.enter" catalog="system"/>
                             <connections>
-                                <action selector="buttonPlayerTopToolBarTouchInside:" destination="iN0-l3-epB" eventType="touchUpInside" id="wGC-Hl-fMh"/>
+                                <action selector="tapPip:" destination="iN0-l3-epB" eventType="touchUpInside" id="fB5-g1-OnB"/>
                             </connections>
                         </button>
-                        <button opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Fml-c2-FMY">
-                            <rect key="frame" x="60" y="10" width="25" height="25"/>
+                        <button opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Mqe-Hd-USv">
+                            <rect key="frame" x="40" y="5" width="25" height="25"/>
                             <constraints>
-                                <constraint firstAttribute="width" constant="25" id="S8g-UR-4zh"/>
-                                <constraint firstAttribute="height" constant="25" id="zjo-O1-SI2"/>
+                                <constraint firstAttribute="width" constant="25" id="HQs-6R-hb9"/>
+                                <constraint firstAttribute="height" constant="25" id="s43-Qc-Shn"/>
                             </constraints>
-                            <state key="normal" image="audioOn"/>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <state key="normal" image="captions.bubble" catalog="system"/>
                             <connections>
-                                <action selector="setMute:" destination="iN0-l3-epB" eventType="touchUpInside" id="5uy-bw-aar"/>
+                                <action selector="tapSubtitle:" destination="iN0-l3-epB" eventType="touchUpInside" id="Cxi-6E-bKD"/>
                             </connections>
                         </button>
-                        <button opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="a3d-ja-utA">
-                            <rect key="frame" x="15" y="10" width="25" height="25"/>
+                        <button opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Fml-c2-FMY">
+                            <rect key="frame" x="75" y="5" width="25" height="25"/>
                             <constraints>
-                                <constraint firstAttribute="height" constant="25" id="TIW-zu-jSX"/>
-                                <constraint firstAttribute="width" constant="25" id="jR3-bv-VnZ"/>
+                                <constraint firstAttribute="width" constant="25" id="S8g-UR-4zh"/>
+                                <constraint firstAttribute="height" constant="25" id="zjo-O1-SI2"/>
                             </constraints>
-                            <state key="normal" image="pip.enter" catalog="system"/>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <state key="normal" image="audioOn"/>
                             <connections>
-                                <action selector="setPip:" destination="iN0-l3-epB" eventType="touchUpInside" id="uhg-Zu-HZ8"/>
+                                <action selector="tapMute:" destination="iN0-l3-epB" eventType="touchUpInside" id="FWr-cn-Pgw"/>
                             </connections>
                         </button>
                     </subviews>
-                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                    <constraints>
-                        <constraint firstAttribute="trailing" secondItem="Fml-c2-FMY" secondAttribute="trailing" constant="15" id="8ve-6A-eUd"/>
-                        <constraint firstItem="AKs-cS-3AJ" firstAttribute="leading" secondItem="aU7-QX-ePS" secondAttribute="leading" id="9Ze-H6-xI9"/>
-                        <constraint firstAttribute="bottom" secondItem="AKs-cS-3AJ" secondAttribute="bottom" id="FGR-I6-3Wg"/>
-                        <constraint firstAttribute="width" constant="100" id="U30-Kk-nJE"/>
-                        <constraint firstAttribute="height" constant="45" id="YE9-O3-5pU"/>
-                        <constraint firstItem="AKs-cS-3AJ" firstAttribute="top" secondItem="aU7-QX-ePS" secondAttribute="top" id="ZUd-v8-hfs"/>
-                        <constraint firstItem="a3d-ja-utA" firstAttribute="centerY" secondItem="aU7-QX-ePS" secondAttribute="centerY" id="eAW-c1-q9V"/>
-                        <constraint firstItem="a3d-ja-utA" firstAttribute="leading" secondItem="aU7-QX-ePS" secondAttribute="leading" constant="15" id="o3n-I3-S2i"/>
-                        <constraint firstItem="Fml-c2-FMY" firstAttribute="centerY" secondItem="aU7-QX-ePS" secondAttribute="centerY" id="uvf-Tj-ke3"/>
-                        <constraint firstAttribute="trailing" secondItem="AKs-cS-3AJ" secondAttribute="trailing" id="yUJ-b3-to1"/>
-                    </constraints>
-                </view>
+                    <directionalEdgeInsets key="directionalLayoutMargins" top="5" leading="5" bottom="5" trailing="5"/>
+                </stackView>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="85m-50-8yp">
-                    <rect key="frame" x="10" y="787" width="394" height="65"/>
+                    <rect key="frame" x="10" y="794" width="394" height="58"/>
                     <subviews>
-                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="1z7-mx-EOF" userLabel="Button Player Tool Bar">
-                            <rect key="frame" x="0.0" y="0.0" width="394" height="65"/>
-                            <connections>
-                                <action selector="buttonPlayerToolBarTouchInside:" destination="iN0-l3-epB" eventType="touchUpInside" id="xCb-8m-kx2"/>
-                            </connections>
-                        </button>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ixi-yR-HDH" userLabel="Container play">
-                            <rect key="frame" x="0.0" y="0.0" width="118" height="65"/>
+                            <rect key="frame" x="0.0" y="0.0" width="118" height="58"/>
                             <subviews>
                                 <button opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uP7-aY-x4n">
-                                    <rect key="frame" x="3.5" y="12.5" width="40" height="40"/>
+                                    <rect key="frame" x="3.5" y="9" width="40" height="40"/>
                                     <constraints>
                                         <constraint firstAttribute="width" constant="40" id="0jv-Tl-Nch"/>
                                         <constraint firstAttribute="height" constant="40" id="jnZ-cX-iJY"/>
                                     </constraints>
                                     <state key="normal" image="gobackward.10" catalog="system"/>
                                     <connections>
-                                        <action selector="backButtonSec:" destination="iN0-l3-epB" eventType="touchUpInside" id="pPF-Ca-M2w"/>
+                                        <action selector="tapBack:" destination="iN0-l3-epB" eventType="touchUpInside" id="q3g-BH-iUc"/>
                                     </connections>
                                 </button>
                                 <button opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hx9-d5-yiD">
-                                    <rect key="frame" x="39" y="12.5" width="40" height="40"/>
+                                    <rect key="frame" x="39" y="9" width="40" height="40"/>
                                     <constraints>
                                         <constraint firstAttribute="width" constant="40" id="Ime-ag-2Hm"/>
                                         <constraint firstAttribute="height" constant="40" id="snM-fJ-0LV"/>
@@ -96,18 +84,18 @@
                                         <preferredSymbolConfiguration key="preferredSymbolConfiguration" scale="default"/>
                                     </state>
                                     <connections>
-                                        <action selector="playerPause:" destination="iN0-l3-epB" eventType="touchUpInside" id="enk-eL-NtN"/>
+                                        <action selector="tapPlayerPause:" destination="iN0-l3-epB" eventType="touchUpInside" id="XHf-om-3g9"/>
                                     </connections>
                                 </button>
                                 <button opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bGn-IC-3V1">
-                                    <rect key="frame" x="74.5" y="12.5" width="40" height="40"/>
+                                    <rect key="frame" x="74.5" y="9" width="40" height="40"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="40" id="VDT-no-B6f"/>
                                         <constraint firstAttribute="width" constant="40" id="eA5-wy-Sqb"/>
                                     </constraints>
                                     <state key="normal" image="goforward.10" catalog="system"/>
                                     <connections>
-                                        <action selector="forwardButtonSec:" destination="iN0-l3-epB" eventType="touchUpInside" id="1MY-Wl-aCi"/>
+                                        <action selector="tapForward:" destination="iN0-l3-epB" eventType="touchUpInside" id="45z-IH-Fyr"/>
                                     </connections>
                                 </button>
                             </subviews>
@@ -122,16 +110,16 @@
                             </constraints>
                         </view>
                         <slider opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" value="0.5" minValue="0.0" maxValue="1" translatesAutoresizingMaskIntoConstraints="NO" id="MY0-FC-j88">
-                            <rect key="frame" x="121" y="17.5" width="265" height="31"/>
+                            <rect key="frame" x="121" y="14" width="265" height="31"/>
                         </slider>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="99:99:99" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="svM-TQ-AyQ">
-                            <rect key="frame" x="338.5" y="47.5" width="45.5" height="12"/>
+                            <rect key="frame" x="338.5" y="44" width="45.5" height="12"/>
                             <fontDescription key="fontDescription" type="system" pointSize="10"/>
                             <nil key="textColor"/>
                             <nil key="highlightedColor"/>
                         </label>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="00:00:00" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="OHB-2J-Gqb">
-                            <rect key="frame" x="123" y="47.5" width="45" height="12"/>
+                            <rect key="frame" x="123" y="44" width="45" height="12"/>
                             <fontDescription key="fontDescription" type="system" pointSize="10"/>
                             <nil key="textColor"/>
                             <nil key="highlightedColor"/>
@@ -142,30 +130,26 @@
                         <constraint firstItem="ixi-yR-HDH" firstAttribute="centerY" secondItem="85m-50-8yp" secondAttribute="centerY" id="5sz-fh-GbG"/>
                         <constraint firstItem="OHB-2J-Gqb" firstAttribute="leading" secondItem="MY0-FC-j88" secondAttribute="leading" id="6n7-If-xdS"/>
                         <constraint firstItem="ixi-yR-HDH" firstAttribute="height" secondItem="85m-50-8yp" secondAttribute="height" id="8xM-7l-FXN"/>
-                        <constraint firstAttribute="height" constant="65" id="9Uv-dV-to4"/>
+                        <constraint firstAttribute="height" constant="58" id="9Uv-dV-to4"/>
                         <constraint firstItem="svM-TQ-AyQ" firstAttribute="top" secondItem="MY0-FC-j88" secondAttribute="bottom" id="Aan-ac-nr9"/>
                         <constraint firstItem="MY0-FC-j88" firstAttribute="leading" secondItem="ixi-yR-HDH" secondAttribute="trailing" constant="5" id="BAz-4C-w3A"/>
                         <constraint firstAttribute="trailing" secondItem="svM-TQ-AyQ" secondAttribute="trailing" constant="10" id="JXl-DO-x6b"/>
                         <constraint firstItem="ixi-yR-HDH" firstAttribute="leading" secondItem="85m-50-8yp" secondAttribute="leading" id="Kh2-nU-bMU"/>
-                        <constraint firstAttribute="bottom" secondItem="1z7-mx-EOF" secondAttribute="bottom" id="Ta0-kB-BQ2"/>
-                        <constraint firstAttribute="trailing" secondItem="1z7-mx-EOF" secondAttribute="trailing" id="V93-UI-XDO"/>
-                        <constraint firstItem="1z7-mx-EOF" firstAttribute="leading" secondItem="85m-50-8yp" secondAttribute="leading" id="ZSd-hQ-3I2"/>
                         <constraint firstItem="ixi-yR-HDH" firstAttribute="width" secondItem="85m-50-8yp" secondAttribute="width" multiplier="0.3" id="gXG-4n-Ee3"/>
                         <constraint firstAttribute="trailing" secondItem="MY0-FC-j88" secondAttribute="trailing" constant="10" id="hBO-J2-Kdo"/>
                         <constraint firstItem="OHB-2J-Gqb" firstAttribute="top" secondItem="MY0-FC-j88" secondAttribute="bottom" id="jdb-Vq-WoF"/>
                         <constraint firstItem="MY0-FC-j88" firstAttribute="centerY" secondItem="85m-50-8yp" secondAttribute="centerY" id="lG8-DN-rTE"/>
-                        <constraint firstItem="1z7-mx-EOF" firstAttribute="top" secondItem="85m-50-8yp" secondAttribute="top" id="xra-pJ-UgW"/>
                     </constraints>
                 </view>
             </subviews>
             <viewLayoutGuide key="safeArea" id="vUN-kp-3ea"/>
             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <constraints>
-                <constraint firstItem="vUN-kp-3ea" firstAttribute="trailing" secondItem="aU7-QX-ePS" secondAttribute="trailing" constant="10" id="2h2-gm-Gog"/>
                 <constraint firstItem="85m-50-8yp" firstAttribute="leading" secondItem="vUN-kp-3ea" secondAttribute="leading" constant="10" id="5H2-Gg-PEb"/>
                 <constraint firstItem="vUN-kp-3ea" firstAttribute="trailing" secondItem="85m-50-8yp" secondAttribute="trailing" constant="10" id="BXT-Qo-qFl"/>
                 <constraint firstItem="vUN-kp-3ea" firstAttribute="bottom" secondItem="85m-50-8yp" secondAttribute="bottom" constant="10" id="N7Q-PF-7lb"/>
-                <constraint firstItem="aU7-QX-ePS" firstAttribute="top" secondItem="vUN-kp-3ea" secondAttribute="top" constant="10" id="srY-5w-tyj"/>
+                <constraint firstItem="XfW-XC-eMf" firstAttribute="top" secondItem="vUN-kp-3ea" secondAttribute="top" constant="10" id="fq3-6h-kkx"/>
+                <constraint firstItem="vUN-kp-3ea" firstAttribute="trailing" secondItem="XfW-XC-eMf" secondAttribute="trailing" constant="10" id="uYG-Ai-CGv"/>
             </constraints>
             <connections>
                 <outlet property="backButton" destination="uP7-aY-x4n" id="SyC-qV-IMq"/>
@@ -177,13 +161,15 @@
                 <outlet property="playButton" destination="hx9-d5-yiD" id="Enk-Ge-2Yx"/>
                 <outlet property="playbackSlider" destination="MY0-FC-j88" id="bVe-Kc-80k"/>
                 <outlet property="playerToolBarView" destination="85m-50-8yp" id="eZK-p1-v65"/>
-                <outlet property="playerTopToolBarView" destination="aU7-QX-ePS" id="kEC-Og-bfW"/>
+                <outlet property="playerTopToolBarView" destination="XfW-XC-eMf" id="Qdp-IW-YhT"/>
+                <outlet property="subtitleButton" destination="Mqe-Hd-USv" id="ZHN-bf-WT5"/>
             </connections>
-            <point key="canvasLocation" x="139" y="153"/>
+            <point key="canvasLocation" x="137.68115942028987" y="152.67857142857142"/>
         </view>
     </objects>
     <resources>
         <image name="audioOn" width="28" height="28"/>
+        <image name="captions.bubble" catalog="system" width="128" height="110"/>
         <image name="gobackward.10" catalog="system" width="121" height="128"/>
         <image name="goforward.10" catalog="system" width="121" height="128"/>
         <image name="pip.enter" catalog="system" width="128" height="96"/>