Expo Video Player报Required value was null错误求助
解决Expo中Video组件/Expo-Video-Player触发"Required value was null"错误的方案
1. 修复代码中的明显错误
- 第一个示例里使用了
Video.RESIZE_MODE_CONTAIN但未导入Video组件,需补充导入:import { Video } from 'expo-av'; - 本地视频的
source写法错误,无需用uri包裹require,正确写法:source={require('./big_buck_bunny_short.mp4')}
2. 检查依赖与版本兼容性
- 确保
expo-video-player与你的Expo SDK版本匹配,重新安装依赖:npm uninstall expo-video-player && npm install expo-video-player - 确认
expo-av已正确安装(Video组件属于expo-av):expo install expo-av
3. 验证权限配置
虽然音频正常,但视频播放(尤其是在线视频)需要以下权限,在app.json中确认配置:
- Android:添加
INTERNET权限(在线视频必需)"android": { "permissions": ["INTERNET"] } - iOS:Expo默认已配置媒体播放权限,若需读取本地相册视频,确保开启
PHOTO_LIBRARY权限。
4. 清除缓存并重启项目
缓存问题常导致这类异常,执行以下命令重启:
expo r -c
5. 简化代码排查问题
先测试最基础的Video组件,排除第三方库干扰:
import React from 'react'; import { View, StyleSheet } from 'react-native'; import { Video } from 'expo-av'; export default function App() { return ( <View style={styles.container}> <Video style={styles.video} source={{ uri: 'http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4' }} shouldPlay resizeMode="contain" useNativeControls /> </View> ); } const styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center' }, video: { width: '100%', height: 300 } });
如果基础组件正常,再逐步集成expo-video-player。
内容的提问来源于stack exchange,提问作者Philipp Weidhas
相关产品推荐
相关产品推荐

