症状
Flutter(iOS)でHLSライブ配信を再生中、映像・音声ともに完全に止まるブラックアウトが発生。
| 条件 | 内容 |
|---|---|
| 発生端末 | iOS 26端末のみ(機種問わず) |
| 発生コンテンツ | ライブ配信のみ(VODは問題なし) |
| 回線 | WiFi環境でも発生 |
原因
iOS 26 で AVPlayer のエラー判定・タイムアウトの挙動が変わった可能性が高い。Apple Developer Forums でも同様の報告が複数あり(
CoreMediaErrorDomain: -15628)。
HLSライブ配信中にセグメントの取得失敗やタイムアウトが発生すると、AVPlayer が自動リトライを断念して AVPlayerItemStatusFailed に遷移する。SDK はこれを STRPlaybackSessionLifecycleEventFail として通知する。
Webブラウザは失敗時に粘り強くリトライするようだが、AVPlayer は iOS 26 から早めに諦める傾向があるとみられる。
対処方法(リトライ実装)
ブラックアウト自体を完全に防ぐのは難しい。STRPlaybackSessionLifecycleEventFail を検知したら以下の手順でリカバリする。
- URLを取得し直す 既存のURLを使い回さず、動画URLを再取得する。
- AVPlayerItem を新規生成して差し替える 既存の AVPlayerItem を再利用してもリカバリできない。必ず新しく生成すること。
備考
- iOS 26 は2025年9月リリース時点で報告が多く、Apple 側のバグ修正待ちの側面もある。根本対応は Apple のアップデートに依存する可能性がある。
- Android(ExoPlayer)でも類似のブラックアウトが報告されているが、原因は別途調査中(配信終了時の
TIMELINE_UPDATEに起因する可能性あり)。