Как переключиться на полноэкранный режим(поворот в альбомную ориентацию при нажатии кнопки полноэкранного режима в графическом интерфейсе проигрывателя YouTube) в iframe React Native youtube?

#react-native #iframe #youtube-api #expo #youtube-iframe-api

#реагировать-родной #фрейм #youtube-api #Экспо #youtube-iframe-api

Вопрос:

Я хочу переключить плеер в ландшафтный режим по нажатию полноэкранной кнопки в графическом интерфейсе проигрывателя. Я использую expo, поэтому я использовал ориентацию expo, я могу переключиться в ландшафтный режим, вызвав функцию onfullscreenchange prop, но после выхода из полноэкранного режима приложение заблокировано в ландшафтном режиме. Как мне это исправить?

мой код:

VideoPlayer.js

 import React from "react";  import { View, Dimensions } from "react-native";  import YoutubePlayer from "react-native-youtube-iframe";    import * as ScreenOrientation from "expo-screen-orientation";    const VideoPlayer = () =gt; {  function setOrientation() {  if (Dimensions.get("window").height gt; Dimensions.get("window").width) {  //Device is in portrait mode, rotate to landscape mode.  ScreenOrientation.lockAsync(ScreenOrientation.OrientationLock.LANDSCAPE);  } else {  //Device is in landscape mode, rotate to portrait mode.  ScreenOrientation.lockAsync(ScreenOrientation.OrientationLock.PORTRAIT);  }  }    return (  lt;View  style={{  width: "100%",  height: 220,  }}  gt;  lt;YoutubePlayer  height={300}  play={false}  videoId={"Dv7gLpW91DM"}  onFullScreenChange={setOrientation}  /gt;  lt;/Viewgt;  );  };    export default VideoPlayer;  

Ответ №1:

Вы можете использовать логическое значение, возвращенное из onFullScreenChange, чтобы определить, находится ли плеер в полноэкранном режиме или нет, и оттуда установить правильную ориентацию, сейчас я не могу проверить, но это должно быть что-то вроде этого

 onFullScreenChange={isFullscreen =gt; {   if(isFullscreen) { setOrientationToPortrait() }   else { setOrientationToLandscape() } }  

Комментарии:

1. да, это работает, спасибо за помощь