AudioPlayerOptions
Sets how an audio player starts out (its volume, speed and looping) and which scope owns it.
Usage
Play a track and record a voice note
This type is used by audio.player
import { Box, Button, VStack, Text, audio, onMount } from 'kuito';
function Track() {
// The component owns it: made when it mounts, released when it unmounts.
const song = audio.player('https://example.com/song.mp3', { loop: true });
const { time, duration } = song;
return (
<VStack>
{/* A 280-point bar that fills from the left, moved on the UI thread. */}
<Box width={280} height={4} overflow="hidden">
<Box
width={280}
height={4}
backgroundColor="#e50914"
translateX={duration.value > 0 ? (time.value / duration.value - 1) * 280 : -280}
/>
</Box>
<Button onPress={() => (song.playing.value = !song.playing.value)}>
{song.playing.value ? 'Pause' : 'Play'}
</Button>
<Button onPress={() => void song.seek(time.value + 30)}>Skip</Button>
</VStack>
);
}
function Memo() {
const recorder = audio.recorder({ quality: 'medium', metering: true });
onMount(() => void audio.configure({ allowsRecording: true }));
return (
<VStack>
<Box height={8} backgroundColor="#e5484d" opacity={1 + recorder.level.value / 60} />
<Button onPress={() => void recorder.start()}>Record</Button>
<Button onPress={async () => console.log((await recorder.stop()).uri)}>Stop</Button>
</VStack>
);
}Type declaration
export type AudioPlayerOptions = ScopeOptions & {
/** 0 to 1. Defaults to 1. */
volume?: number;
/** 0.5 to 2, pitch kept. Defaults to 1. */
rate?: number;
/** Starts over at the end instead of stopping. Defaults to false. */
loop?: boolean;
};Members 4
| Name | Type | Required | Description |
|---|---|---|---|
scope | typeof appModule | No | — |
volume | number | No | 0 to 1. Defaults to 1. |
rate | number | No | 0.5 to 2, pitch kept. Defaults to 1. |
loop | boolean | No | Starts over at the end instead of stopping. Defaults to false. |
scope — nested fields
scope fields
| Name | Type | Required | Description |
|---|---|---|---|
watch | <E extends keyof Events>(event: E, listener: Events[E]) => EventSubscription | Yes | Calls listener when the system warns that memory runs low. In a
component it stops when the component unmounts; elsewhere the returned
subscription stops it. |
state | ReadonlySignal<State> | Yes | Whether the app is in the foreground. Watched, it follows the platform;
starting to observe reports the state the platform starts from, which
catches a change made in between. Default: AppStateModule.state |
openSettings | () => Promise<void> | Yes | Opens this app's page in the system Settings. Default: AppStateModule.openSettings |
watch — method signatures
Signatures
<E extends keyof Events>(event: E, listener: Events[E]): EventSubscriptionType parameters
| Name | Constraint | Default |
|---|---|---|
E | "memoryWarning" | — |
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
event | E | Yes | — |
listener | Events[E] | Yes | — |
Returns
openSettings — method signatures
Signatures
(): Promise<void>Parameters
No parameters.
Returns
Promise<void>
Generated from the public TypeScript declarations: signatures, props and defaults come from the checked source, descriptions from its JSDoc. No defaults are invented.