expo react-native視訊播放元件
前置準備
安裝 expo-av(播放器前置),expo-video-player(播放器元件),expo-screen-orientation(切換螢幕方向)
效果圖
縱向
橫向
基礎的視訊元件程式碼
<VideoPlayer
inFullscreen={true}
videoProps={{
shouldPlay: true,
resizeMode: Video.RESIZE_MODE_CONTAIN,
source: {
uri: 'http://d23dyxeqlo5psv.cloudfront.net/big_buck_bunny.mp4',
},
}}
width= {videowidth}
height= {videoheight}
}}
/>
在此基礎上新增全屏功能
長寬比為 10:9
import { StyleSheet, View,Dimensions,StatusBar} from 'react-native';
import React, { useState,useEffect} from 'react';
import * as ScreenOrientation from 'expo-screen-orientation';
import { Audio, Video } from 'expo-av';
import VideoPlayer from 'expo-video-player'
const {height, width} = Dimensions.get('window');
const VideoPage=(props)=>{
const [screenFlag, setscreenFlag] = useState(1)
const [videowidth, setvideowidth] = useState(Dimensions.get('window').width)
const [videoheight, setvideoheight] = useState(Dimensions.get('window').width*9/10)
return(
<>
{
screenFlag==1?(
<StatusBar backgroundColor="#87CEFA"/>
):(<StatusBar hidden={true}/>)
}
<View style={{ flex: 1,backgroundColor:'#f5f6f7',}}>
<View>
<VideoPlayer
inFullscreen={true}
videoProps={{
shouldPlay: true,
resizeMode: Video.RESIZE_MODE_CONTAIN,
source: {
uri: 'http://d23dyxeqlo5psv.cloudfront.net/big_buck_bunny.mp4',
},
}}
width= {videowidth}
height= {videoheight}
switchToPortrait={()=>{
if(screenFlag==1){
ScreenOrientation.lockAsync(ScreenOrientation.OrientationLock.LANDSCAPE_LEFT)
setscreenFlag(0)
setvideowidth(Dimensions.get('window').height)
setvideoheight(Dimensions.get('window').width)
}else{
ScreenOrientation.lockAsync(ScreenOrientation.OrientationLock.PORTRAIT_UP)
setscreenFlag(1)
setvideowidth(width)
setvideoheight(width*9/10-1)
//console.log(videowidth+","+videoheight)
}
}}
/>
</View>
</View>
</>
)
}
export default VideoPage
相關文章
- expo 搭建 react-native 元件庫【圖文並茂】React元件
- WPF播放視訊
- Android開發 海康威視 多路視訊播放(同時播放視訊)Android
- 視訊播放學習
- unity中播放視訊Unity
- 視訊播放用例
- iOS開發系列--音訊播放、錄音、視訊播放、拍照、視訊錄製(轉)iOS音訊
- C# WPF 用MediaElement控制元件實現視訊迴圈播放C#控制元件
- video視訊標籤播放時js/jQuery顯示播放控制元件會導致播放暫停解決辦法IDEJSjQuery控制元件
- 小程式播放當前視訊關閉其他視訊
- 視訊播放–踩坑小計
- 視訊播放--踩坑小計
- 自定義視訊播放器播放器
- 視訊播放器工具Infuse播放器
- 阿里雲視訊播放器阿里播放器
- 電視機頂盒視訊播放外掛
- vue-core-video-player-基於vue.js的視訊播放器元件IDEVue.js播放器元件
- IOS 整合 Bilibili IJKPlayer播放器,播放rtmp視訊流iOS播放器
- 日常總結 --- 視訊播放按鈕
- 實現播放視訊及彈幕
- Flutter視訊播放封裝歷程Flutter封裝
- Win10播放器無法播放視訊如何解決_win10自帶播放器不能播放視訊怎麼修復Win10播放器
- Android 音視訊開發 - 使用AudioTrack播放音訊Android音訊
- 短視訊app開發,點選視訊進行全屏播放APP
- MPV 播放器:Linux 下的極簡視訊播放器播放器Linux
- 仿抖音 火山視訊滑動播放
- 開源視訊播放器介紹播放器
- video自定義實現視訊播放功能IDE
- H5視訊播放器特性H5播放器
- 視訊播放器全屏旋轉方案播放器
- 視訊播放器Infuse PRO mac版播放器Mac
- Mac視訊播放器哪個好用?Mac播放器
- Movist Pro for Mac(Mac視訊播放器)Mac播放器
- html5–移動端視訊video的android相容,去除播放控制元件、全屏等HTMLIDEAndroid控制元件
- 音視訊入門之音訊採集、編碼、播放音訊
- 帶你用AVPlayer實現音訊和視訊播放音訊
- 3、Opencv播放視訊、儲存、暫停視訊,開啟攝像頭OpenCV
- 35.FFmpeg+OpenGLES+OpenSLES播放器實現(九.OpenGLES播放視訊)播放器