@olinger/nativescript-exoplayer
一个 NativeScript 插件,用于在 Android 上使用 ExoPlayer 播放本地和远程视频。
npm i --save @olinger/nativescript-exoplayer

npm npm npm Twitter Follow

NativeScript ExoPlayer

一个 NativeScript 插件,提供使用 Google 的 ExoPlayer 播放本地和远程视频的能力。

开发者

MasterTech

使用的平台控件

Android iOS
Google ExoPlayer iOS AVPlayer
对于 100% NativeScript 插件,请使用 NativeScript-VideoPlayer

基于

这是基于 Brad Martin(nStudio, llc)的出色的 NativeScript-VideoPlayer;Android 方面被重写以使用 Google 的增强型 ExoPlayer。iOS 方面与原始 NativeScript-VideoPlayer 中的相同。

由于有很多情况您可能仍然需要一个 100% NativeScript 插件,Brad 和我决定将其作为一个单独的插件来制作,这样您就可以在需要纯 JavaScript 插件的那些情况下使用原始 NativeScript-VideoPlayer。

Google ExoPlayer 将大约一兆半插件添加到 Android 应用程序中。

示例用法

            Sample 1             |              Sample 2

-------------------------------------| ------------------------------------- Sample Usage | Sample 2

安装

从您的命令提示符/终端进入您的应用程序根目录并执行

tns plugin add nativescript-exoplayer

使用方法

<Page xmlns="http://schemas.nativescript.org/tns.xsd"
xmlns:exoplayer="nativescript-exoplayer">
<StackLayout>

<exoplayer:Video id="nativeexoplayer"
controls="true" finished="{{ videoFinished }}"
loop="true" autoplay="false" height="280"
src="~/videos/big_buck_bunny.mp4" />

<!-- Remote file to test with https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4 -->

</StackLayout>
</Page>

Angular Native (NativeScript Angular) 使用方法

// somewhere at top of your component or bootstrap file
import {registerElement} from "nativescript-angular/element-registry";
registerElement("exoplayer", () => require("nativescript-exoplayer").Video);
// documentation: https://docs.nativescript.cn/angular/plugins/angular-third-party.html#simple-elements

使用 AngularNative,您必须显式关闭所有组件,因此下面的模板代码是正确的。

  <exoplayer
src="https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4"
autoplay="true"
height="300"></exoplayer>

属性

  • src - 必需

设置要播放的视频文件,如果可能,使用本地视频文件以获得最佳性能。文件必须遵守平台接受的视频格式。有关参考,请检查播放视频的平台规范。

  • enableSubtitles

默认情况下,字幕支持是关闭的。使用此标志将其打开。

  • subtitles

设置带有字幕的 .srt 文件。这可以是本地文件或互联网 URL。目前仅支持 .srt 格式。

  • autoplay - (布尔值) - 可选

设置视频是否立即开始播放,或者等待用户交互。

  • finished - (函数) - 可选

指定当视频达到其持续时间结束时执行的回调事件。

  • controls - (布尔值) - 可选

设置为使用原生视频播放器的媒体播放控件。

  • muted - (布尔值) - 可选

静音原生视频播放器。

  • loop - (布尔值) - 可选

设置原生视频播放器在播放完成后循环。

  • fill - (VideoFill) - 可选

Android:当设置为 VideoFill.aspectFill 时,视频的纵横比将不予考虑,并将填充整个可用空间。

iOS

  • VideoFill.default = AVLayerVideoGravityResize
  • VideoFill.aspect = AVLayerVideoGravityResizeAspect
  • VideoFill.aspectFill = AVLayerVideoGravityResizeAspectFill

有关解释,请参阅 这里

  • playbackReady - (函数) - 可选

指定当视频准备播放时执行的回调事件。

  • seekToTimeComplete - (函数) - 可选

指定当视频完成 seekToTime 时执行的回调事件。

  • observeCurrentTime - (布尔值) - 可选

如果设置为true,则currentTimeUpdated回调是可能的。

  • currentTimeUpdated - (函数) - 可选

属性用于指定当时间更新时执行的事件回调。

API

  • play() - 开始播放视频
  • pause() - 暂停视频
  • seekToTime(time: number) - 将视频跳转到指定时间(毫秒)
  • getCurrentTime() - 返回视频持续时间的当前时间(毫秒)
  • getDuration() - 返回视频持续时间(毫秒)
  • destroy() - 销毁视频播放器并释放资源
  • mute(boolean) - 静音当前视频
  • setVolume() - 设置音量 - 必须介于0和1之间。

仅限Android

  • stop() - 停止播放 - 这将重置播放器并移除视频src

破坏性变更

  • Android现在将在应用暂停/恢复时附加/分离,并在注销/注册视频时注销/注册视频
  • 默认情况下,将禁用字幕支持。

贡献者