2

当我尝试播放直播时,播放器立即停止。从日志中,我看到视频一开始就调用了 onEnd si。

奇怪的是它只发生在真正的手机上,它在模拟器上运行良好。尝试使用 Android Studio Emulator 和 Genymotion,都可以正常工作。调试和发布都无法在实际手机上播放直播。

<TouchableOpacity style={VideoPlayerStyles.fullScreen} onPress={this.handleVideoTap}>
  <Video source={{ uri: this.props.channelSrc }}
    style={VideoPlayerStyles.fullScreen}
    rate={this.state.rate}
    paused={this.state.paused}
    volume={this.state.volume}
    muted={this.state.muted}
    resizeMode={this.state.resizeMode}
    onLoad={this.onLoad}
    onProgress={this.onProgress}
    onEnd={this.onEnd}
    repeat={false}
    fullscreen={true}
    ref={ref => {
        this.player = ref
    }}
      onBuffer={this.onBuffer} 
    onError={this.videoError} />
</TouchableOpacity>
4

2 回答 2

0

检查您的视频 URI 是否可以从您的设备访问。

您可能正在尝试访问可从在台式机/笔记本电脑上运行的模拟器访问的 URI,因为台式机/笔记本电脑和模拟器将连接到同一网络。

在移动设备上打开 Chrome 并尝试访问视频 URI。如果它不起作用,那么它的网络问题。

于 2019-08-08T04:52:50.420 回答
0

根据

汤姆沃尔特斯

回答

视频开始时调用 react-native-video onEnd

onEnd={this.onEnd}

to 将在组件被渲染时立即执行console.log,当 prop 实际需要一个函数时。

要修复它,请使用:

onEnd={() => this.onEnd}
于 2019-08-15T04:14:25.837 回答