hwc-media-content について
Stimulus と Turbo Frames を使ったメディア機能の構築を支援するスキルです。メディア状態、ブラウザー API、リソース解放、段階的な Frame 更新を扱います。
主な機能
- 01アップロードとプレビューのフロー
- 02再生位置の保持
- 03ブラウザー標準のメディア API
- 04外部プレーヤーのライフサイクル管理
- 05時間同期した Frame 更新
活用シーン
- 01アップロードした画像やファイルのプレビュー
- 02動画の再生位置の保存
- 03ピクチャーインピクチャー機能の追加
- 04再生に合わせた歌詞の更新
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ lucianghinda/ superpowers-ruby --skill hwc-media-contentインストール後、Claude Code で/hwc-media-contentを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/2024-04-09-turbo-frames-scrolling-lyrics.md2024-04-23-stimulus-progressive-image-loading-blurhash.md2024-06-04-stimulus-picture-in-picture.md2024-07-02-stimulus-wavesurfer-add-markers.md2024-07-30-stimulus-wavesurfer-remove-markers.md2024-09-17-stimulus-image-upload-previews.md2024-10-29-stimulus-video-progress-tracker.md2025-01-14-turbo-frames-swiper-autoplay.mdINDEX.md詳細
メディアとリッチコンテンツ
Stimulus と Turbo Frames を使って、メディアを中心とした Hotwire の機能を実装します。
コアワークフロー
- メディアモードを特定します。アップロード/プレビュー、再生コントロール、再生位置の永続化、埋め込みライブラリとの連携などがあります。
- メディアの状態は Stimulus の値に保持し、値のコールバックとターゲットを通じてサードパーティの API と連携します。
- まずブラウザー標準の API(
URL.createObjectURL、Picture-in-Picture、IntersectionObserver、MediaSession)を使います。 disconnect()で割り当てたリソース(オブザーバー、blob URL、プレーヤーのインスタンス、タイマー)をすべて解放します。- 意図したクライアント状態(再生位置など)のみを永続化し、読み込み時に整合性を取ります。
ガードレール
- 画像/ファイルのプレビューを表示した後に、blob URL を無効化します。
- ブラウザー API(PiP/Web Share/MediaSession)には、機能検出を優先して使います。
- 通信に関する処理を混在させないでください。メディアの描画はここで扱い、ストリームのオーケストレーションはリアルタイム処理向けのスキルで扱います。
- 時間ベースの UI(歌詞、カルーセル、進捗ウィジェット)では、フレームを段階的に更新します。
必要なリファレンスのみを読み込む
現在のリクエストに必要なファイルのみを開いてください。
- blob URL を使ったアップロードのプレビュー:
references/2024-09-17-stimulus-image-upload-previews.md - プログレッシブ画像読み込みと Blurhash:
references/2024-04-23-stimulus-progressive-image-loading-blurhash.md - Picture-in-Picture の動作:
references/2024-06-04-stimulus-picture-in-picture.md - 動画の再生位置の永続化:
references/2024-10-29-stimulus-video-progress-tracker.md - WaveSurfer のマーカー追加フロー:
references/2024-07-02-stimulus-wavesurfer-add-markers.md - WaveSurfer のマーカー削除フロー:
references/2024-07-30-stimulus-wavesurfer-remove-markers.md - 時間に同期した歌詞のフレーム更新:
references/2024-04-09-turbo-frames-scrolling-lyrics.md - Turbo Frames での Swiper 自動再生:
references/2025-01-14-turbo-frames-swiper-autoplay.md
全カタログは references/INDEX.md を参照してください。
関連スキルへのエスカレーション
- プッシュ型のデータ更新やカスタム Turbo Stream アクションには、
hwc-realtime-streamingを使います。 - ページネーション/タブ/フィルターのナビゲーションには、
hwc-navigation-contentを使います。 - フォームのライフサイクルとバリデーション処理には、
hwc-forms-validationを使います。 - 汎用的な読み込み/進捗/トランジションの UX には、
hwc-ux-feedbackを使います。 - Stimulus API のみを扱うアーキテクチャには、
hwc-stimulus-fundamentalsを使います。
コメント
Markdown 対応