在将我的应用升级到 react-native 0.59 时,我也升级react-native-video到了它的最新版本 4.4.1。当前发生的情况是,当尝试使用此库播放视频时,视频需要一段时间才能播放。视频的大小似乎无关紧要。视频存储在 S3 上,在我的测试环境中,视频由 链接Cloudfront,在我的本地环境中,视频由 S3 位置链接,但两种环境表现出的行为相同。
这仅适用于 Android,iOS 播放功能可在 1 秒内为相同视频准备就绪。
我尝试回滚react-native-video到以前的兼容版本,问题仍然存在。
不同的设备有不同的播放可用性等待时间。
由于使用需要 SDK 28 的 Firebase 版本,我无法使用 SDK 27。
IOException初始化组件以获取 S3 资源时会引发一个问题,但库最终确实获取了视频。
我不知道问题的确切原因,库是否在播放前下载视频,或者请求中是否需要包含标头。
这是尝试播放视频时的调试输出:
I/MediaPlayer: constructor
W/MediaPlayer: setScreenOnWhilePlaying(true) is ineffective without a SurfaceHolder
V/MediaPlayer: resetDrmState: mDrmInfo=null mDrmProvisioningThread=null mPrepareDrmInProgress=false mActiveDrmScheme=false
cleanDrmObj: mDrmObj=null mDrmSessionId=null
V/MediaPlayer: resetDrmState: mDrmInfo=null mDrmProvisioningThread=null mPrepareDrmInProgress=false mActiveDrmScheme=false
cleanDrmObj: mDrmObj=null mDrmSessionId=null
I/MediaPlayer: setDataSource:<S3-url>/video.mp4
W/MediaPlayer: Couldn't open <S3-url>/video.mp4: java.io.FileNotFoundException: No content provider: <S3-url>/video.mp4
I/MediaPlayer: setDataSource:<S3-url>/video.mp4
V/MediaHTTPService: MediaHTTPService(android.media.MediaHTTPService@cefd526): Cookies: …Run Code Online (Sandbox Code Playgroud)