Skip to content

Commit

Permalink
Update: [Client][TV/Watch] iPad Safari でも LL-HLS にフォールバックする
Browse files Browse the repository at this point in the history
iPad Safari では Media Source Extensions API がサポートされているが、残念ながら数年経っても挙動が不安定なこと、どっちみち iPhone Safari 向けに LL-HLS のサポートを続ける必要があることから、iPad Safari でも LL-HLS を使う
  • Loading branch information
tsukumijima committed Sep 15, 2023
1 parent 44766ef commit ca2b744
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 2 deletions.
9 changes: 9 additions & 0 deletions client/src/utils/Utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,15 @@ export default class Utils {
}


/**
* ブラウザが Safari かどうか
* @returns ブラウザが Safari なら true を返す
*/
public static isSafari(): boolean {
return /Safari/i.test(navigator.userAgent) && !/Chrome/i.test(navigator.userAgent);
}


/**
* モバイルデバイス(スマホ・タブレット)かどうか
* @returns モバイルデバイス (スマホ・タブレット) なら true を返す
Expand Down
6 changes: 4 additions & 2 deletions client/src/views/TV/Watch.vue
Original file line number Diff line number Diff line change
Expand Up @@ -327,8 +327,10 @@ export default Vue.extend({
player_can_be_destroyed: false,
// mpegts.js がサポートされているかどうか
// mpegts.js がサポートされていない場合は LL-HLS にフォールバックする (基本 iPhone Safari 向け)
is_mpegts_supported: mpegts.isSupported() === true,
// mpegts.js がサポートされていない場合は LL-HLS にフォールバックする (基本 iPhone/iPad Safari 向け)
// iPad Safari では Media Source Extensions API がサポートされているが、残念ながら数年経っても挙動が不安定なこと、
// どっちみち iPhone Safari 向けに LL-HLS のサポートを続ける必要があることから、iPad Safari でも LL-HLS を使う
is_mpegts_supported: mpegts.isSupported() === true && Utils.isSafari() === false,
// ライブストリームが Offline 状態かどうか
is_offline: false,
Expand Down

0 comments on commit ca2b744

Please sign in to comment.