@bbc/psammead-media-player

中文文档
6.0.10发布于 2022/04/13Apache-2.0ESM + CJS近 30 天下载 3042

向媒体播放器提供可选的占位符

中文使用文档
文档目录13 节
  1. 说明
  2. 何时使用此组件
  3. 安装
  4. 道具
  5. Canonical 媒体显示器
  6. MpMediaPlayer (英语)
  7. 使用量
  8. Canonical 媒体显示器
  9. MpMediaPlayer (英语)
  10. 无障碍说明
  11. 捐款
  12. 行为守则
  13. 许可证

· psammead-media-player(英语:psammead-media-player) · 游戏机(英语:psammead-media-player) · 游戏机(英语:psammead-media-player) · 游戏机(英语: Known Vulnerabilities Dependency Status peerDependencies Status Storybook GitHub license npm version PRs Welcome

说明

这个 psammead-media-player 组件导出我们媒体播放器的两个版本:AMP版本和Canonical版本.

归根结底,这个组件返回 iframe 用于设定媒体资产. AMP的变体将形成 amp-iframe 有个巢穴 amp-img 作为占位符使用. Canonical 变体将生成一个占位符,当点击时将加载 iframe 进入视野.

何时使用此组件

此组件将在页面的任意点使用, 特别是当需要媒体播放器时 .

安装

npm install @bbc/psammead-media-player

道具

Canonical 媒体显示器

参数类型需求默认示例
src字符串对- 说吧'http://foobar.com/embeddable_endpoint'
skin字符串没有'classic''audio'
title字符串对- 说吧'Video player'
service字符串对- 说吧'news'
showPlaceholder布尔没有truefalse
placeholderSrc字符串没有null'http://foobar.com/placeholder.png'
placeholderSrcset字符串没有'''https://bbc.com/300/cat.jpg 300w, https://bbc.com/450/cat.jpg 450w, https://bbc.com/600/cat.jpg 600w'
portrait布尔没有falsetrue
mediaInfo对象对- 说吧{ title: 'A vertical video pretending to be a cat title', duration: '2:30', durationSpoken: '2 minutes 11 seconds', datetime: 'PT2M30S' }
noJsClassName字符串没有null'no-js'
noJsMessage字符串对- 说吧'This media cannot play in your browser. Please enable Javascript or use a different browser.'
onMediaInitialised函数没有() => {}() => hideLoadingIndicator()
onMediaPlaying函数没有() => {}() => trackMediaPlaybackStarted()
onMediaPause函数没有() => {}() => shrinkPlayerWindow()
onMediaEnded函数没有() => {}() => trackMediaPlaybackComplete()
onMediaPlaylistEnded函数没有() => {}() => visitNextVideoPage()
onMediaError函数没有() => {}() => logError()

这个 src 需要道克,因为它告诉组件它需要嵌入什么页. 这个 placeholderSrcset 道克不需要,因为它可以根据屏幕大小允许图像响应和优化. 这个 title 嵌入式iframe的可访问性需要道具. 这个 portrait 不需要道具,默认为 false。这是在未来支持肖像视频内容. 这个 showPlaceholder 布尔道具也不需要,默认为 true。 。 。 . 假设 showPlaceholder 实值 true,则 placeholderSrc 将显示什么图像作为占位符. 这个 noJsClassName 是默认为 null 并用于在浏览器中被禁用javascript时添加某些元素的样式支持. 这个 noJsMessage 当 javascript 在浏览器中被禁用时, 是需要使用的道具 . 这个 mediaInfo 需要道具,并具有以下属性.

介质信息

参数类型需求默认示例
title字符串对- 说吧'A vertical video pretending to be a cat title'
datetime字符串没有- 说吧'PT11S'
duration字符串没有- 说吧'0:11'
durationSpoken字符串没有- 说吧'11 seconds'
type字符串没有"video"'audio'
guidanceMessage字符串没有- 说吧'May contain strong language,sexual or violent content that may offend'

活动

Canonical 媒体播放器接受回调功能,它将针对从 iframe 发布的事件引用这些功能. 目前支持以下活动:

活动说明
onMediaInitialised当媒体播放器装入并准备开始播放时调用
onMediaPlaying当媒体播放器开始播放时调用
onMediaPause当用户暂停播放时调用
onMediaEnded当播放列表项目(包括广告或IDID)完成回放时调用
onMediaPlaylistEnded当整个播放列表完成回放时调用
onMediaError当媒体播放器遇到错误时调用

在使用 BBC 的 iFrame 时,这些回调被引用,并附加了大量关于事件性质的更多信息. 内部用户应参考SMP文件的更详细信息

MpMediaPlayer (英语)

参数类型需求默认示例
src字符串对- 说吧http://foobar.com/embeddable_endpoint
placeholderSrcset字符串没有null'https://bbc.com/300/cat.jpg 300w, https://bbc.com/450/cat.jpg 450w, https://bbc.com/600/cat.jpg 600w'
title字符串对- 说吧Video player
portrait布尔没有falsetrue
placeholderSrc字符串对- 说吧'http://foobar.com/placeholder.png'

这个 placeholderSrc aMP需要道具,因为组件装入 amp-iframe 在600px或75%的 从顶端的取景口,我们必须有一个 amp-img 占位符。 欲了解更多这方面的情况,请参见: Amp-iframe 的 AMP 文件。 。 。 .

使用量

Canonical 媒体显示器

import { CanonicalMediaPlayer } from '@bbc/psammead-media-player';

const Container = ({
  src,
  skin,
  title,
  service,
  portrait,
  showPlaceholder,
  placeholderSrc,
  placeholderSrcset,
  mediaInfo,
  noJsClassName,
  noJsMessage,
}) => (
  <CanonicalMediaPlayer
    src={src}
    skin={skin}
    title={title}
    service={service}
    portrait={portrait}
    placeholderSrc={placeholderSrc}
    placeholderSrcset={placeholderSrcset}
    showPlaceholder={showPlaceholder}
    mediaInfo={mediaInfo}
    noJsClassName={noJsClassName}
    noJsMessage={noJsMessage}
  />
);

MpMediaPlayer (英语)

import { AmpMediaPlayer } from '@bbc/psammead-media-player';

const Container = ({
  src,
  title,
  portrait,
  placeholderSrc,
  placeholderSrcset,
}) => (
  <AmpMediaPlayer
    src={src}
    title={title}
    portrait={portrait}
    placeholderSrc={placeholderSrc}
    placeholderSrcset={placeholderSrcset}
  />
);

无障碍说明

这个 title 道具对 无障碍。它针对用户,应当被翻译,以与用户的语言相匹配.

捐款

Psammead完全开源. 我们感谢任何贡献,无论是新的组件、错误修正还是总体改进。 请参看我们的主要贡献指南,可查阅: psammead 仓库的根。 。 。 .

行为守则

我们欢迎对这项工作的反馈和帮助。 通过参与这个项目,你同意遵守 行为守则请稍候再读一下.

许可证

萨姆米德 Apache 2.0 许可。 。 。 .

版本与发布记录

@bbc/psammead-media-player 共发布 148 个版本,首次发布于 2019/08/21;过去 12 个月发布了 0 个版本。

版本发布日期距今
6.0.10latest2022/04/134 年前
6.0.92022/04/084 年前
6.0.82022/03/304 年前
6.0.72022/03/294 年前
6.0.62022/03/114 年前
6.0.42022/02/104 年前

其他发布通道:alpha → 4.0.0-alpha.1。

关于 @bbc/psammead-media-player 的常见问题

@bbc/psammead-media-player 是什么?

向媒体播放器提供可选的占位符

如何安装 @bbc/psammead-media-player?

在项目目录运行 npm install @bbc/psammead-media-player,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(>=16.9.0)、@emotion/styled(^11.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@bbc/psammead-media-player 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/bbc__psammead-media-player 是否存在。

@bbc/psammead-media-player 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@bbc/psammead-media-player 可以商用吗?

@bbc/psammead-media-player 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@bbc/psammead-media-player 的下载量有多少?

根据 npm 官方下载统计,@bbc/psammead-media-player 在 2026/10/08 – 2026/11/06 这 30 天内被下载 3,042 次,日均约 101 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@bbc/psammead-media-player 还在维护吗?

最新版本 6.0.10 发布于 2022/04/13(4 年前);至今共发布 148 个版本,其中过去 12 个月发布了 0 个;首次发布于 2019/08/21。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。