是否可以在 反应原生 中使用内置的视频播放器



我正在尝试在我的 React-Native 应用程序中播放视频,但我只想使用操作系统中内置的标准视频播放器。例如,当您在手机上的Safari或Chrome中时,您可以按视频上的播放按钮。我基本上希望在我的应用程序中做到这一点,但我看到的一切都告诉我使用名为react-native-video的库,据我所知,这需要您完全制作自己的视频播放器。

坦率地说,我需要一些仅将 url 作为源并在 onPress 上打开操作系统内置的本机视频播放器的东西。有谁知道这是否可能?

您正在寻找专门用于 Android Intents 的链接(用法说明(。根据您的 url 外观(http,本地文件系统(,这应该可以工作,或者您可能需要不同的模块。

打开视频的 http 网址的简单示例:

Linking.openURL('http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4')

在我的 Android 设备上,默认情况下,这将打开列表,它让我可以选择在不同的应用程序中打开 url(就我而言,我选择了 MX Player,它可以很好地播放视频(。

我无法找到各种受支持的 Android 方案的文档(例如,默认情况下使用 MX Player 打开它(,但应该是可能的。如果没有,那么您可以使用第三方模块解决方案查看类似问题的答案:

  • 这建议使用 react-native-intent-launcher 模块。
  • 这建议使用反应原生-原生-视频播放器模块。

如果您碰巧找到用于链接以在特定播放器中打开视频的特定 uri 方案,请发表评论,我会将其编辑为答案,因为我相信它会帮助其他人。

在 React Native 中,要在外部视频播放器中播放视频:

import {NativeModules} from 'react-native';  //import Native Modules
const Video = () => {
const SendIntentAndroid = NativeModules?.SendIntentAndroid || {};
// call this function to play your video in an external video player
const onVideoPlay = path => {
SendIntentAndroid?.openAppWithData(
null, // Package name
path, // uri
'video/*', // mime/type
{},
);
};

return (
<Button title="Play Video" onPress={onVideoPlay}  />
)
}

最新更新