You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 22:27:20