createPlayer

预计阅读时间: 3 分钟

工厂函数,创建带有类型化存储、Provider 组件、Container 和钩子的播放器实例。

createPlayer 是在 React 中设置 Video.js 播放器的入口点。它接受一个包含 features 数组的配置对象,并返回用于构建播放器的钩子和组件。

该钩子根据提供的功能进行类型化,为状态选择器和操作提供完整的类型安全。

import { createPlayer } from '@videojs/react';
import { videoFeatures } from '@videojs/react/video';

const Player = createPlayer({ features: videoFeatures });
// Player.Provider, Player.Container, Player.usePlayer, Player.useMedia

示例

基本用法

import { createPlayer } from '@videojs/react';
import { Video, videoFeatures } from '@videojs/react/video';

const Player = createPlayer({
  features: videoFeatures,
});

function Controls() {
  const store = Player.usePlayer();
  const paused = Player.usePlayer((s) => s.paused);

  return (
    <div className="controls">
      <button type="button" className="button" onClick={() => (paused ? store.play() : store.pause())}>
        {paused ? 'Play' : 'Pause'}
      </button>
    </div>
  );
}

export default function BasicUsage() {
  return (
    <Player.Provider>
      <Player.Container className="media-container">
        <Video
          src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4"
          autoPlay
          muted
          playsInline
        />
        <Controls />
      </Player.Container>
    </Player.Provider>
  );
}

API 参考

Video

创建带有类型化存储、Provider 组件、Container 和钩子的播放器实例。

参数

参数类型默认值说明
config*CreatePlayerConfig<VideoFeatures>包含功能和可选显示名称的播放器配置

返回值

属性类型说明
ProviderReact.FC<ProviderProps>播放器状态提供者组件
ContainerReact.ForwardRefExoticComponent<ContainerProps & RefAttributes<HTMLDivElement>>播放器布局容器组件
usePlayerUsePlayerHook<VideoPlayerStore>访问播放器存储的钩子
useMedia(() => Media | null)访问底层媒体元素的钩子

Audio

创建用于音频媒体的播放器。

参数

参数类型默认值说明
config*CreatePlayerConfig<AudioFeatures>包含功能和可选显示名称的播放器配置

返回值

属性类型说明
ProviderReact.FC<ProviderProps>播放器状态提供者组件
ContainerReact.ForwardRefExoticComponent<ContainerProps & RefAttributes<HTMLDivElement>>播放器布局容器组件
usePlayerUsePlayerHook<AudioPlayerStore>访问播放器存储的钩子
useMedia(() => Media | null)访问底层媒体元素的钩子

Generic

使用自定义功能创建播放器。

参数

参数类型默认值说明
config*CreatePlayerConfig<AnyPlayerFeature[]>包含功能和可选显示名称的播放器配置

返回值

属性类型说明
ProviderReact.FC<ProviderProps>播放器状态提供者组件
ContainerReact.ForwardRefExoticComponent<ContainerProps & RefAttributes<HTMLDivElement>>播放器布局容器组件
usePlayerUsePlayerHook<PlayerStore<AnyPlayerFeature[]>>访问播放器存储的钩子
useMedia(() => Media | null)访问底层媒体元素的钩子

参见

  • usePlayer - 在组件中访问播放器状态
  • useMedia - 访问底层媒体元素
  • useStore - 直接访问存储状态和操作