我有一个要求在我的React原生应用程序中播放Vimeo视频。我正在使用webview播放视频,视频播放,但我看不到屏幕上的任何东西,音频来了,但屏幕是空白的。下面是我的代码。有什么我做错了或任何其他方式来播放Vimeo?任何帮助将不胜感激。
<AutoHeightWebView
startInLoadingState
style={{ width: "100%", height: '100%', borderColor: 'white', borderWidth: 2 }}
source={{
uri: 'https://player.vimeo.com/video/299264098?autoplay=1' //'this.state.videoUrl'
}}
onError={() => console.log('on error')}
onLoad={() => console.log('on load')}
onLoadStart={() => console.log('on load start')}
onLoadEnd={() => console.log('on load end')}
bounces={false}
/>
6条答案
按热度按时间edqdpe6u1#
我发现了一种方法来运行一个vimeo视频在React原生。简单地说,你必须请求的网址,以获得它的详细配置通过vimeo的id。里面的配置,你会发现videoUrl,这可以很容易地运行在React原生视频控件。
示例如下
渲染中
uxhixvfz2#
我找到了一个在webview上嵌入iframe的解决方案。
fnx2tebb3#
简短回答:使用
progressive
文件,而不是hls
。这些文件似乎包含指向mp4文件的链接,expo-av
在Android和iOS上都支持mp4文件,无论您的项目是一个裸React Native项目,还是由Expo管理。与the solution posted by Zuhair Naqi类似,但使用
res.request.files.progressive
中对象的url,而不是res.request.files.hls.cdns[res.request.files.hls.default_cdn].url
下例中的函数将返回一个对象列表,其中包含指向不同分辨率视频的链接。
然后,对于您的组件,执行如下操作:
oogrdqng4#
尝试使用
react-native-video
包在React Native项目中播放Vimeo
视频。使用
npm
安装或者使用
yarn
:以下链接中可能出现的问题值得注意。
https://stackoverflow.com/a/52976151/5519329
https://stackoverflow.com/a/39982973/5519329
代码:
n1bvdmb65#
我在尝试在应用程序中显示嵌入式Vimeo视频时遇到了同样的问题。使用
html
内容的解决方案(如Juliano所示)非常适合我qlzsbp2j6#
你可以使用 Vimeo 提供的oEmbed api,它会为相关视频生成一个可嵌入的
<iframe>
元素,你可以在钩子中使用一个函数,如下所示:videoURL
参数将取决于视频发布的频道类型。