这个项目能做什么
react-native-vlc-media-player 为 React Native 应用提供了基于 VLC 的媒体播放组件。该包导出了 `VLCPlayer` 用于直接控制播放器,以及 `VLCPlayerView` 这个更高级的视图,包含标题、返回、自动播放和其他 UI 选项。
支持的网络源包括 RTSP、RTP、RTMP、HLS、MMS、HTTP、FTP、UDP 以及 VLC 暴露的其他协议。README 列出了广泛的格式支持,包括 MKV、MP4、AVI、FLV、Ogg、MPEG 传输流、H.264、H.265、AV1、VP8/VP9、AAC、MP3、FLAC、Opus、AC3 和 DTS。它还支持多音轨(包括 5.1 声道)和字幕格式,如 SRT、WebVTT、TTML、SSA/ASS、VobSub 和图文电视。
播放器属性包括源 URI、本地字幕 URI、暂停状态、重复播放、播放速率、跳转位置、音量、静音、选定的音频和文本轨道、后台播放、宽高比、自动宽高比、缩放模式和自动播放。事件回调包括 onPlaying、onProgress、onPaused、onStopped、onBuffering、onEnded、onError、onLoad、onRecordingCreated 和 onSnapshot。Ref 方法可以录制当前流到目录、停止录制以及保存帧截图。
可通过 npm 或 Yarn 安装,对于非 Expo 项目需要 React Native 链接。Android 通常不需要特殊设置,但 README 包含了针对重复 `libc++_shared.so` 原生库的 Gradle 解决方法,并指出较新的 LibVLC 版本解决了 Android 12 和 13 上的字幕问题。iOS 设置使用 CocoaPods;针对 iOS 14 及更高版本的应用可能需要 `NSLocalNetworkUsageDescription`,因为 MobileVLCKit 可以访问本地网络以获取 RTSP 摄像头流等源。
Expo 仅支持通过自定义开发构建,不支持 Expo Go,因为该模块包含自定义原生代码。提供了一个 Expo 配置插件,带有可选的 iOS VLCKit 和 Android 旧版 Jetifier 设置。
README 记录了某些版本上 iOS 17 模拟器的崩溃问题,并建议在这种情况下使用 iOS 18+ 模拟器。它还列出了一个待办事项,表明 Android 视频宽高比和参数处理在 JavaScript 端尚未完全实现。
评论
0 评分人数达到10人后显示
登录后参与讨论。