Utilisation

Play a track and record a voice note

Ce type est utilisé par audio.player

tsx
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>
  );
}

Déclaration du type

ts
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;
};

Membres 4

NomTypeRequisDescription
scopetypeof appModuleNon—
volumenumberNon0 to 1. Defaults to 1.
ratenumberNon0.5 to 2, pitch kept. Defaults to 1.
loopbooleanNonStarts over at the end instead of stopping. Defaults to false.
scope — champs imbriqués

scope champs

NomTypeRequisDescription
watch<E extends keyof Events>(event: E, listener: Events[E]) => EventSubscriptionOuiCalls listener when the system warns that memory runs low. In a component it stops when the component unmounts; elsewhere the returned subscription stops it.
stateReadonlySignal<State>OuiWhether 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.
Par défaut: AppStateModule.state
openSettings() => Promise<void>OuiOpens this app's page in the system Settings.
Par défaut: AppStateModule.openSettings
watch — signatures de méthode

Signatures

ts
<E extends keyof Events>(event: E, listener: Events[E]): EventSubscription

Paramètres de type

NomContraintePar défaut
E"memoryWarning"—

Paramètres

NomTypeRequisDescription
eventEOui—
listenerEvents[E]Oui—

Retourne

EventSubscription

openSettings — signatures de méthode

Signatures

ts
(): Promise<void>

Paramètres

Aucun paramètre.

Retourne

Promise<void>

Généré depuis les déclarations TypeScript publiques : signatures, props et valeurs par défaut viennent de la source vérifiée, les descriptions de sa JSDoc. Aucune valeur par défaut n'est inventée.