diff --git a/packages/audiodocs/docs/core/base-audio-context.mdx b/packages/audiodocs/docs/core/base-audio-context.mdx index 2cdc056d9..e9c853c33 100644 --- a/packages/audiodocs/docs/core/base-audio-context.mdx +++ b/packages/audiodocs/docs/core/base-audio-context.mdx @@ -4,6 +4,7 @@ sidebar_position: 1 import { Optional, ReadOnly, MobileOnly } from '@site/src/components/Badges'; import DecodeAudioDataDocs from '@site/src/components/DecodeAudioDataDocs/DecodeAudioDataDocs'; +import Heading from '@theme/Heading'; # BaseAudioContext @@ -90,7 +91,7 @@ Creates [`AudioBufferSourceNode`](/docs/sources/audio-buffer-source-node). **Returns:** `AudioBufferSourceNode` -### `createBufferQueueSource` +createBufferQueueSource Creates [`AudioBufferQueueSourceNode`](/docs/sources/audio-buffer-queue-source-node). diff --git a/packages/audiodocs/docs/effects/gain-node.mdx b/packages/audiodocs/docs/effects/gain-node.mdx index e8dccfdc6..25c09b6c0 100644 --- a/packages/audiodocs/docs/effects/gain-node.mdx +++ b/packages/audiodocs/docs/effects/gain-node.mdx @@ -80,4 +80,4 @@ gainNode.gain.linearRampToValueAtTime(1, audioContext.currentTime + 2); ## Advanced usage — Envelope (ADSR) -`GainNode` is the key building block for implementing sound envelopes. For a practical, step-by-step walkthrough of ADSR envelopes and how to apply them in a real app, see the [Piano keyboard](/docs/guides/making-a-piano-keyboard#envelopes-%EF%B8%8F) guide. +`GainNode` is the key building block for implementing sound envelopes. For a practical, step-by-step walkthrough of ADSR envelopes and how to apply them in a real app, see the [Piano keyboard](/docs/guides/making-a-piano-keyboard#envelopes) guide. diff --git a/packages/audiodocs/docs/fundamentals/getting-started.mdx b/packages/audiodocs/docs/fundamentals/getting-started.mdx index cf0b19edc..c3c055628 100644 --- a/packages/audiodocs/docs/fundamentals/getting-started.mdx +++ b/packages/audiodocs/docs/fundamentals/getting-started.mdx @@ -4,6 +4,7 @@ sidebar_position: 2 import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +import Heading from '@theme/Heading'; # Getting started @@ -107,7 +108,7 @@ There are many ways to do that, for example, using git bash. To make sure just t bash -c 'echo Hello World!' ``` -### Step 4: Additional dependencies (optional) +Step 4: Additional dependencies (optional) If you plan to use any of [`WorkletNode`](/docs/worklets/worklet-node), [`WorkletSourceNode`](/docs/worklets/worklet-source-node), or [`WorkletProcessingNode`](/docs/worklets/worklet-processing-node), install [`react-native-audio-worklets`](https://github.com/software-mansion/react-native-audio-api/tree/main/packages/react-native-audio-worklets) and [`react-native-worklets`](https://www.npmjs.com/package/react-native-worklets) `>= 0.10.0`. Follow the [react-native-worklets setup guide](https://docs.swmansion.com/react-native-worklets/docs/fundamentals/getting-started) for Babel and native configuration, then see the [Worklets](/docs/worklets/introduction) section for usage. diff --git a/packages/audiodocs/docs/inputs/audio-recorder.mdx b/packages/audiodocs/docs/inputs/audio-recorder.mdx index ac5574851..5e07ac283 100644 --- a/packages/audiodocs/docs/inputs/audio-recorder.mdx +++ b/packages/audiodocs/docs/inputs/audio-recorder.mdx @@ -640,7 +640,7 @@ interface AudioRecorderFileOptions { - `rotateIntervalBytes` - The threshold size (in bytes) at which the recorder will start writing to a new file. If set to `0` (default), file output rotation is disabled. When active, new files are named with the original prefix appended with a timestamp. You can join the rotated files after recording with [`concatAudioFiles`](/docs/utils/file-concatenation#concataudiofiles). - Use a large enough value for your format. Very small thresholds rotate often, which increases the chance of audible gaps or muffled joins after concatenation — especially for **M4A**, where each segment is a separate AAC encode. - Practical starting points: **≥ 1 MB** for WAV, **≥ 200 KB** for M4A (adjust upward if you still hear artifacts at segment boundaries). - - This option controls segment file size, not RAM usage. For crash-resilience tuning on Android, use [`androidFlushIntervalMs`](#androidflushintervalms) instead. + - This option controls segment file size, not RAM usage. For crash-resilience tuning on Android, use `androidFlushIntervalMs` instead. - `format` - The desired extension and file format of the recorder file. Check: [FileFormat](#fileformat) below. - `preset` - The desired recorder file properties, you can use either one of built-in properties or tweak low-level parameters yourself. Check [FilePresetType](#filepresettype) for more details. - `directory` - Either `FileDirectory.Cache` or `FileDirectory.Document` (default: `FileDirectory.Cache`). Determines the system directory that the file will be saved to. diff --git a/packages/audiodocs/docs/sources/audio-buffer-queue-source-node.mdx b/packages/audiodocs/docs/sources/audio-buffer-queue-source-node.mdx index 0d89cddab..0459cdd9b 100644 --- a/packages/audiodocs/docs/sources/audio-buffer-queue-source-node.mdx +++ b/packages/audiodocs/docs/sources/audio-buffer-queue-source-node.mdx @@ -24,7 +24,7 @@ constructor(context: BaseAudioContext, options?: AudioBufferQueueSourceOptions) | `pitchCorrection` | `boolean` | `false` | Enables the pitch correction algorithm when changing [`playbackRate`](/docs/sources/audio-buffer-queue-source-node#properties). | :::info -You can also create an `AudioBufferQueueSourceNode` via [`BaseAudioContext.createBufferQueueSource()`](/docs/core/base-audio-context#createbufferqueuesource), which uses default values. +You can also create an `AudioBufferQueueSourceNode` via [`BaseAudioContext.createBufferQueueSource()`](/docs/core/base-audio-context#create-buffer-queue-source), which uses default values. ::: :::caution @@ -127,7 +127,7 @@ Removes all buffers from the queue. Note that [`onBufferEnded`](audio-buffer-que #### Returns `undefined`. -### `start` {#start} +### `start` {"#start"} Schedules the `AudioBufferQueueSourceNode` to start playback of enqueued [`AudioBuffers`](/docs/sources/audio-buffer), or starts to play immediately. diff --git a/packages/audiodocs/docs/sources/audio-buffer-source-node.mdx b/packages/audiodocs/docs/sources/audio-buffer-source-node.mdx index d162d7503..9501a634b 100644 --- a/packages/audiodocs/docs/sources/audio-buffer-source-node.mdx +++ b/packages/audiodocs/docs/sources/audio-buffer-source-node.mdx @@ -8,7 +8,7 @@ import { Optional, Overridden, MobileOnly } from '@site/src/components/Badges'; import InteractivePlayground from '@site/src/components/InteractivePlayground'; import { useAudioBufferSourcePlayground } from '@site/src/components/InteractivePlayground/AudioBufferSourceExample/useAudioBufferSourcePlayground'; import { useGainAdsrPlayground } from '@site/src/components/InteractivePlayground/GainAdsrExample/useGainAdsrPlayground'; - +import Heading from '@theme/Heading'; # AudioBufferSourceNode @@ -126,7 +126,7 @@ source.start(startTime - latency); ``` -### `start` {#start} +start Schedules the `AudioBufferSourceNode` to start playback of audio data contained in the associated [`AudioBuffer`](/docs/sources/audio-buffer), or starts to play immediately. diff --git a/packages/audiodocs/docusaurus.config.js b/packages/audiodocs/docusaurus.config.js index 2cbf00d35..a18064b09 100644 --- a/packages/audiodocs/docusaurus.config.js +++ b/packages/audiodocs/docusaurus.config.js @@ -47,7 +47,8 @@ const config = { projectName: 'react-native-audio-api', // Usually your repo name. onBrokenLinks: 'throw', - onBrokenMarkdownLinks: 'warn', + onBrokenMarkdownLinks: 'throw', + onBrokenAnchors: 'throw', // Even if you don't use internationalization, you can use this field to set // useful metadata like html lang. For example, if your site is Chinese, you