首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Safari上的Bitmovin播放器不能从媒体SourceConfig加载字幕选择选项

Safari上的Bitmovin播放器不能从媒体SourceConfig加载字幕选择选项
EN

Stack Overflow用户
提问于 2020-01-14 04:50:45
回答 1查看 349关注 0票数 0

我在一个Angular应用中使用Bitmovin播放器(v8.15)。我已经按照如下方式配置了播放器并定义了回调

代码语言:javascript
运行
复制
this._player = new Player(this.videoPlayer.nativeElement, {
  ...bitmovinConfig,
  events: {
    // other code removed

    [SubtitleAdded]: () => this.triggerCaptionChange(),

    // other code removed
  },
});

triggerCaptionChange() {
  const captions = this._player.subtitles.list() as MediaCaption[];
  console.log(captions);
  // other code removed
}

Chrome中的MediaCaption看起来像这样(我们基本上扩展了bitmovin的SubtitleTrack接口,并添加了subTypesideloaded

代码语言:javascript
运行
复制
"id": "1",
"url": "https://...myurl_hidden.../DASH/5b95ba67-75bc-4127-bcaa-182a819f649c_WebVTT_eng.vtt",
"kind": "caption",
"lang": "en-US",
"subType": "subtitles",
"sideloaded": true,
"label": "English",
"enabled": true

我们还使用如下配置加载播放器:

代码语言:javascript
运行
复制
async onSourceChange(_: SourceConfig, current: SourceConfig) {  
  await this._player.load(current); 
  this.triggerAudioChange();
  this.triggerCaptionChange(); 

  ...
}

在Chrome中,current看起来像这样:

代码语言:javascript
运行
复制
"hls": "https://...urlhidden.../spmx/.../.../Dash/DASH_pertitle-dash.mpd",
"dash": "https://...urlhidden.../spmx/.../...Dash/DASH_pertitle-dash.mpd",
"drm": hidden,

"subtitleTracks": [
    {
      "enabled": "false",
      "id": "1",
      "url": "https://...urlhidden.../spmx/.../.../Dash/Subtitles_es_419.vtt",
      "kind": "caption",
      "label": "es-419",
      "lang": "es-419",
      "subType": "Subtitles",
      "sideloaded": true
    },
    {
      "enabled": "false",
      "id": "3",
      "url": "https://...urlhidden.../spmx/.../.../Dash/Captions_en_US.vtt",
      "kind": "caption",
      "label": "es-US",
      "lang": "en-US",
      "subType": "Captions",
      "sideloaded": true
    }
  ],
  "options": {
    "startTime": 1709
  }

在Safari中,current看起来像这样(注意,没有dash键):

代码语言:javascript
运行
复制
"hls": "https://...urlhidden.../spmx/.../.../Apple/HLS_main.m3u8",
"drm": hidden,
"subtitleTracks": [
    {
      "enabled": "false",
      "id": "1",
      "url": "https://...urlhidden.../spmx/.../.../Apple/Subtitles_es-419.m3u8",
      "kind": "caption",
      "lang": "es-419",
      "lang": "es-419",
      "subType": "SUBTITLES",
      "sideloaded": true
    },
    {
      "enabled": "false",
      "id": "2",
      "url": "https://...urlhidden.../spmx/.../.../Apple/Subtitles_es_419.vtt",
      "kind": "caption",
      "lang": "es-419",
      "lang": "es-419",
      "subType": "Subtitles",
      "sideloaded": true
    },
    {
      "enabled": "false",
      "id": "4",
      "url": "https://...urlhidden.../spmx/.../.../Apple/Captions_en-US.m3u8",
      "kind": "caption",
      "lang": "en-US",
      "lang": "en-US",
      "subType": "SUBTITLES",
      "sideloaded": true
    }
    {
      "enabled": "false",
      "id": "5",
      "url": "https://...urlhidden.../spmx/.../.../Apple/Captions_en_US.vtt",
      "kind": "caption",
      "lang": "en-US",
      "lang": "en-US",
      "subType": "Captions",
      "sideloaded": true
    }
  ],
  "options": {
    "startTime": 1709
  }

在Chrome中:控制台日志提供了一个包含两个项的数组。

在Safari中:我得到一个空数组。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-18 07:30:49

我能够联系到Bitmovin,在与他们讨论之后,我不得不加载SubtitleNative模块(Bitmovin播放器-字幕-本机)。确保在字幕模块(bitmovinplayer-subtitle)之后加载它

代码语言:javascript
运行
复制
import BitmovinSubtitlesNativeModule from 'bitmovin-player/modules/bitmovinplayer-subtitles-native';
Player.addModule(BitmovinSubtitlesNativeModule);

当我这样做的时候,我的侧载条目是由bitmovin加载的。然而,在Safari中,我添加到subtitleTracks[]中的自定义'subType‘和’added that‘字段会被剥离。(我们使用它们来帮助我们区分哪些曲目是侧面加载的,哪些是玩家从清单中加载的。

我们决定将subType和侧载值编码到subtitleTracks的label字段中。现在,我们可以在自定义播放器UI中显示这些侧面加载的字幕选项。

现在,Bitmovin播放器调用我的onCueEnter/Exit回调函数来呈现字幕文本!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59723966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档