【发布时间】:2021-11-30 22:51:27
【问题描述】:
我正在使用expo-av 在我的应用中播放视频。它在每个屏幕上都运行良好。但是当我点击播放按钮时,它会崩溃 2-3 个屏幕并且它没有给出任何错误。
下面是我的代码
import {Video as VideoPlayer} from "expo-av";
....
const videoRef = useRef(null)
....
<VideoPlayer
ref={videoRef}
style={{
width: '100%',
height: 120,
marginTop: moderateScaleVertical(15),
}}
source={{
uri: 'https://superstudent-assets.s3.ap-south-1.amazonaws.com/video_original_1624939508019.mp4',
}}
useNativeControls
resizeMode="contain"
// onPlaybackStatusUpdate={status => setStatus(() => status)}
/>
这就是代码,我对每个屏幕都使用了相同的代码,但它在 2-3 个屏幕上崩溃了。有人知道为什么吗?
【问题讨论】:
-
你使用的是FlatList里面的播放器吗?我正在阅读有关 FlatList 引起一些问题的情况。此外,一旦我遇到同样的问题(不使用 FlatList)并通过设置
opacity: 0.99解决了这个问题。我知道,这很疯狂,但它对我有用。 -
我应该在哪里设置不透明度,它在 flatlist 和 flatlist 之外都崩溃了
-
我刚刚检查了我的旧代码,实际上我在使用名为
react-native-youtube-iframe的包时遇到了问题,所以我猜这个不透明技巧不适用于expo-av。但无论如何,我是通过<YoutubePlayer/>上的webViewStyle={{opacity: 0.99}}属性设置不透明度的。当您遇到此类问题时,如果您确定您正在关注包的文档并且它无法正常工作,请创建一个新项目并对包进行最少的设置。如果你仍然有同样的问题,这意味着包本身包含某种错误,这不是你使用该包的方式。
标签: reactjs react-native expo-av