如何在React Native中获取本地视频列表并以网格格式显示它们?

时间:2019-06-23 21:48:37

标签: android ios react-native mobile-development camera-roll

我正在尝试为Instagram的精选视频屏幕执行类似Instagram的操作。可以上传的本地视频网格,它会“预览”当前在网格本身上方选择的视频。

我正在使用react-native-community / cameraroll,这是我尝试获取视频的代码。

CameraRoll.getPhotos({first: 20, assetType: "All"})
        .then(r => this.setState({ videos: r.edges }))
        .catch((err) => {
            console.log('getVideosErr:' + err)
        })

我试图用一些示例代码显示网格,该示例代码我找到并尝试使用:

<ScrollView>
     {this.state.videos.map((p, i) => {
          return (
           <Video
              key={i}
              style={{
              width: 300,
              height: 100,
           }}
            source={{ uri: p.node.video.uri }}
            />
        ;
})}

我在模拟器上有一个视频,但是每次尝试捕获视频时,都会出现一条错误消息,提示“ TypeError:无法读取未定义的属性'uri'”。

不太确定现在是什么问题,我遵循了相机胶卷文档中的示例,但还没有碰到任何麻烦。任何建议/示例,将不胜感激。

1 个答案:

答案 0 :(得分:0)

使用react-native-media-helper

实现:

import MediaHelper from 'react-native-media-helper'

  <MediaHelper
    numVideos={20} // for android
    media='Videos'   // for ios
    num={20}      // for ios
    onCancel={() => this.setState({visible: false})}
    onSelectedItem={(item) => alert(JSON.stringify(item))}
  />