如何在 react-native 中处理列表视图内的视频视图播放

Posted

技术标签:

【中文标题】如何在 react-native 中处理列表视图内的视频视图播放【英文标题】:How to handle video views playback inside list view in react-native 【发布时间】:2018-03-05 10:39:30 【问题描述】:

我在每一行都有一个包含视频 URL 的项目列表。我已将 React-Native-Video 组件用于视频视图。

<TouchableOpacity
         style=styles.fullScreen
         onPress=() => this.setState( paused: !this.state.paused )
 >
   <Video source= uri: rowData.podcastUrl    // URL
        ref=(ref) => 
 // Store reference
        this.player = ref
         ......
         ......                           
       
   paused=true                                   
  </TouchableOpacity>

上面的代码在 renderMyList() 函数中,每行的渲染都会调用它。

当我加载我的用户界面时,所有视频要么处于播放模式,要么基于“暂停”状态 false 或 true 停止(无论我在上面传递什么。但我想正确处理单个视频的播放/暂停(列表项).我维护了一个暂停状态变量。

请推荐一些示例代码。

【问题讨论】:

你找到解决办法了吗? 【参考方案1】:

如果您打算在任何特定时刻只播放一个视频,您可以执行以下操作

onPress=() =>  this.setState( playing: 'someUniqueIdForThisVideo') 

并检查该视频是否正在播放

paused=this.state.playing !== 'videoIdOrSomething'

如果您想播放多个视频,可以执行以下操作

onPress=() =>  this.setState( ['someUniqueIdForThisVideo']: true) 

然后像下面这样检查状态

paused=this.state['someUniqueIdForThisVideo'] !== true

这只是给你一个粗略的想法。如果它已经在播放,您需要实现某种逻辑将状态设置为 false。

【讨论】:

以上是关于如何在 react-native 中处理列表视图内的视频视图播放的主要内容,如果未能解决你的问题,请参考以下文章

如何在 React-native 中创建下拉菜单?

单击空白区域时如何处理事件?

为啥滚动时列表视图项目内的图像视图会消失?

如何从片段内的列表视图打开链接网址?

如何在片段内创建自定义列表视图

如何在颤动中的扩展磁贴内添加带有动态选择复选框的列表视图