use-asset
Higher-order feature combining player and playlist for managing media assets.
Installation
npx shadcn add @limeplay/use-assetRegister the feature (requires playerFeature, playlistFeature, and playbackFeature):
"use client"
import { assetFeature } from "@/hooks/limeplay/use-asset"
createMediaKit({
features: [
...,
playerFeature(),
playlistFeature(),
playbackFeature(),
assetFeature(),
] as const,
})useAsset Hook
import { useAsset, type Asset } from "@/hooks/limeplay/use-asset"
const { loadAsset, loadPlaylist, next, previous, hasNext, currentItem } =
useAsset({
onAssetLoaded: (asset) => console.log("Loaded:", asset.title),
onLoadError: (asset, error, ctx) => {
console.error("Failed:", asset.title, error)
return "skip" // or "retry" or "stop"
},
})
// Load a single asset
loadAsset({
id: "movie-1",
src: "https://storage.googleapis.com/shaka-demo-assets/angel-one/dash.mpd",
title: "Angel One",
})
// Load a playlist
loadPlaylist([asset1, asset2, asset3])Asset Interface
| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Unique identifier |
src | string | Yes | Media source URL |
title | string | No | Display title |
description | string | No | Description |
poster | string | No | Poster image URL |
config | shaka.extern.PlayerConfiguration | No | Per-asset Shaka config |
Options
Prop
Type
Returns
Prop
Type
useAsset orchestrates usePlayer and usePlaylist — it automatically loads assets when the playlist advances, handles preloading, auto-advances on playback end, and provides error recovery.