Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: 動画に設定した字幕の選択肢が複数表示される問題の修正 #1013

Merged
merged 1 commit into from
Mar 27, 2024

Conversation

kou029w
Copy link

@kou029w kou029w commented Mar 6, 2024

fixed #860

nativeTextTracksが有効化されている環境でブラウザネイティブの字幕(テキストトラック)を追加すると、mp3音声対応のために導入しているvideojs-hlsjs-pluginの内部処理と競合して動画に設定した字幕の選択肢が複数表示される問題がありました。
Video.jsのオプションhtml5.nativeTextTracksを無効化しVideo.jsによってエミュレートされるテキストトラック使用することによってこの問題を回避します。

https://videojs.com/guides/text-tracks/#emulated-text-tracks

前提条件

  • Wowza
  • mp3を含むHLS
  • Video.js 8
  • videojs-hlsjs-plugin
  • Windows10+ or macOS Monterey+

現象の詳細

  • Wowzaを対象にした場合、問題が発生することがあることを手元の環境でも確認 (確認した動画は HLS/mp3 )
  • player.addRemoteTextTrack() メソッドの呼び出しは通常通り1度しか行われていない
    • components/organisms/Video/VideoJs.tsx:L61
  • トレースしていくと Video.js 内部では addRemoteTextTrack() が余計に1度多く呼び出されることがある

#861 への影響

変更後 TextTrack.mode プロパティを記憶・設定することで表示の切り替えを行えることを確認済み:

// 例
player.remoteTextTracks()[0].mode = 'showing' // or 'disabled'

https://developer.mozilla.org/ja/docs/Web/API/TextTrack/mode#showing

fixed #860

nativeTextTracksが有効化されている環境でブラウザネイティブの字幕(テキストトラック)を追加すると、mp3音声対応のために導入しているvideojs-hlsjs-pluginの内部処理と競合して動画に設定した字幕の選択肢が複数表示される問題がありました。
Video.jsのオプションhtml5.nativeTextTracksを無効化しVideo.jsによってエミュレートされるテキストトラック使用することによってこの問題を回避します。

https://videojs.com/guides/text-tracks/#emulated-text-tracks

## 前提条件

- Wowza
- mp3を含むHLS
- Video.js 8
- videojs-hlsjs-plugin
- Windows10+ or macOS Monterey+

## 現象の詳細

- Wowzaを対象にした場合、問題が発生することがあることを手元の環境でも確認  (確認した動画は HLS/mp3 )
- player.addRemoteTextTrack() メソッドの呼び出しは通常通り1度しか行われていない
  - components/organisms/Video/VideoJs.tsx:L61
- トレースしていくと Video.js 内部では addRemoteTextTrack() が余計に1度多く呼び出されることがある
  - `@meikidd/videojs-hlsjs-plugin`
    - https://github.com/meikidd/videojs-hlsjs-plugin/blob/master/lib/videojs-hlsjs-plugin.js#L298-L318

## #861 への影響

変更後 `TextTrack.mode` プロパティを記憶・設定することで表示の切り替えを行えることを確認済み:

```js
// 例
player.remoteTextTracks()[0].mode = 'showing' // or 'disabled'
```

https://developer.mozilla.org/ja/docs/Web/API/TextTrack/mode#showing
@kou029w
Copy link
Author

kou029w commented Mar 6, 2024

確認した環境:

$ npx -y envinfo@latest --system --browsers
  System:
    OS: macOS 13.5
    CPU: (4) x64 Intel(R) Core(TM) i3-8100B CPU @ 3.60GHz
    Memory: 289.33 MB / 8.00 GB
    Shell: 5.9 - /bin/zsh
  Browsers:
    Safari: 16.6

修正前:

スクリーンショット 2024-03-05 16 16 57

修正後:

スクリーンショット 2024-03-05 16 08 24

@kou029w kou029w merged commit 1cc0640 into master Mar 27, 2024
2 checks passed
@kou029w kou029w deleted the gh-860 branch March 27, 2024 02:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

動画に設定した字幕が増える
1 participant