Skip to content

feat: media session API and siemap fixes - #164

Merged
WINOFFRG merged 4 commits into
mainfrom
feat/media-session
Aug 22, 2026
Merged

WINOFFRG merged 4 commits into
mainfrom
feat/media-session

Conversation

@WINOFFRG

Copy link
Copy Markdown
Owner

Review in cubic

Summary by CodeRabbit

  • New Features
    • Added browser Media Session support to audio and video players, including metadata, playback controls, seeking, track navigation, and picture-in-picture actions.
    • Added reusable Media Session utilities and previous-track playlist navigation.
  • Bug Fixes
    • Improved timeline thumb positioning and transitions.
    • Removed unreliable stalled-event buffering updates.
    • Improved video presentation with a black background.
  • Documentation
    • Expanded player and hook documentation with Media Session capabilities.
  • Chores
    • Improved site metadata, search-engine directives, and verification settings.

@coderabbitai

coderabbitai Bot commented Aug 22, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

@WINOFFRG, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 4 minutes

Limit details: You’ve used all 2 included reviews currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

Wait for the limit to reset, then comment @coderabbitai review or push new commits to the PR.

An organization admin can change what happens after included review limits in Billing.

How do review limits work?

CodeRabbit enforces per-developer PR review limits within each organization.

For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 1daa7a88-38a5-42c6-87f3-3a4999aa912a

📥 Commits

Reviewing files that changed from the base of the PR and between 2c48e9b and afc40a1.

📒 Files selected for processing (21)
  • apps/www/app/(home)/layout.tsx
  • apps/www/app/layout.tsx
  • apps/www/content/docs/blocks/audio-player.mdx
  • apps/www/content/docs/blocks/video-player.mdx
  • apps/www/content/docs/hooks/index.mdx
  • apps/www/content/docs/hooks/meta.json
  • apps/www/content/docs/hooks/use-media-session.mdx
  • apps/www/registry/collection/registry-blocks.ts
  • apps/www/registry/collection/registry-hooks.ts
  • apps/www/registry/default/blocks/audio-player/components/fixed-timeline-control.tsx
  • apps/www/registry/default/blocks/audio-player/components/media-session-controller.tsx
  • apps/www/registry/default/blocks/audio-player/lib/media-kit.ts
  • apps/www/registry/default/blocks/audio-player/player.tsx
  • apps/www/registry/default/blocks/video-player/components/media-session-controller.tsx
  • apps/www/registry/default/blocks/video-player/lib/media-kit.ts
  • apps/www/registry/default/blocks/video-player/player.tsx
  • apps/www/registry/default/hooks/use-media-session.ts
  • apps/www/registry/default/hooks/use-picture-in-picture.ts
  • apps/www/registry/default/hooks/use-playback.ts
  • apps/www/registry/default/hooks/use-playlist.ts
  • apps/www/registry/default/ui/timeline-control.tsx

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 20 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="apps/www/registry/default/blocks/audio-player/player.tsx">

<violation number="1" location="apps/www/registry/default/blocks/audio-player/player.tsx:90">
P2: When an app renders multiple `AudioPlayer`s, this mounts a controller for each singleton `navigator.mediaSession`. An empty or secondary player can clear or overwrite the active player's controls and metadata; add shared ownership so only the focused player synchronizes the global session.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

source={source}
sourceKey={sourceKey}
>
<AudioMediaSessionController />

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: When an app renders multiple AudioPlayers, this mounts a controller for each singleton navigator.mediaSession. An empty or secondary player can clear or overwrite the active player's controls and metadata; add shared ownership so only the focused player synchronizes the global session.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At apps/www/registry/default/blocks/audio-player/player.tsx, line 90:

<comment>When an app renders multiple `AudioPlayer`s, this mounts a controller for each singleton `navigator.mediaSession`. An empty or secondary player can clear or overwrite the active player's controls and metadata; add shared ownership so only the focused player synchronizes the global session.</comment>

<file context>
@@ -86,6 +87,7 @@ export const AudioPlayer = React.forwardRef<HTMLDivElement, AudioPlayerProps>(
           source={source}
           sourceKey={sourceKey}
         >
+          <AudioMediaSessionController />
           <RootContainer
             aria-label="Audio player"
</file context>

Comment thread apps/www/registry/default/hooks/use-playlist.ts
Comment thread apps/www/registry/default/hooks/use-media-session.ts Outdated
Comment thread apps/www/registry/default/hooks/use-media-session.ts Outdated
Comment thread apps/www/registry/default/hooks/use-playlist.ts Outdated
@WINOFFRG
WINOFFRG force-pushed the feat/media-session branch from 2d47543 to afc40a1 Compare August 22, 2026 18:50
@WINOFFRG
WINOFFRG merged commit 0eda61d into main Aug 22, 2026
8 checks passed

This branch was successfully deployed

1 active deployment
Preview — afc40a18 Deployed Aug 22, 2026 by vercel[bot]
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