{"record":{"id":"9bd1e34a0611b361","repo":"remotion-dev/remotion","slug":"the-player-component-does-not-accept-defaultp","errorCode":null,"errorMessage":"The <Player /> component does not accept `defaultProps`, but some were passed. Use `inputProps` instead.","messagePattern":"The <Player /> component does not accept `defaultProps`, but some were passed\\. Use `inputProps` instead\\.","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/player/src/Player.tsx","lineNumber":206,"sourceCode":"\t\tsampleRate = 48000,\n\t\tvolumePersistenceKey,\n\t\tinitialVolume,\n\t\t_experimentalKeepAudioContextAlive = false,\n\t\t...componentProps\n\t}: PlayerProps<Schema, Props>,\n\tref: RefObject<PlayerRef>,\n) => {\n\tif (typeof window !== 'undefined') {\n\t\twindow.remotion_isPlayer = true;\n\t}\n\n\tconst onTimelineSequenceChange = React.useContext(\n\t\tTimelineSequenceObserverContext,\n\t);\n\n\t// @ts-expect-error\n\tif (componentProps.defaultProps !== undefined) {\n\t\tthrow new Error(\n\t\t\t'The <Player /> component does not accept `defaultProps`, but some were passed. Use `inputProps` instead.',\n\t\t);\n\t}\n\n\tconst componentForValidation = componentOrNullIfLazy(\n\t\tcomponentProps,\n\t) as ComponentType<unknown> | null;\n\n\t// @ts-expect-error\n\tif (componentForValidation?.type === Composition) {\n\t\tthrow new TypeError(\n\t\t\t`'component' should not be an instance of <Composition/>. Pass the React component directly, and set the duration, fps and dimensions as separate props. See https://www.remotion.dev/docs/player/examples for an example.`,\n\t\t);\n\t}\n\n\tif (componentForValidation === Composition) {\n\t\tthrow new TypeError(\n\t\t\t`'component' must not be the 'Composition' component. Pass your own React component directly, and set the duration, fps and dimensions as separate props. See https://www.remotion.dev/docs/player/examples for an example.`,","sourceCodeStart":188,"sourceCodeEnd":224,"githubUrl":"https://github.com/remotion-dev/remotion/blob/a6a7485a9aeb04219510fbe4874f8941486424df/packages/player/src/Player.tsx#L188-L224","documentation":"During inline audio mixing, each audio file must start at the same sample position across all assets that reference it. If the same filePath is seen again with a different startInSamples, Remotion throws because the mix would be ambiguous.","triggerScenarios":"Rendering a composition where <Audio src={sameFile}> appears in sequences that resolve to different start times in samples across assets sharing the filePath (e.g. due to differing sample rates or trimming calculations).","commonSituations":"Mixing audio with mismatched sample rate assumptions between assets, or an <Audio> inside a sequence whose start differs per render pass, or version changes in how start times are computed.","solutions":["Ensure every <Audio> using the same src starts at the same composition position, or use distinct file copies for distinct start times","Check that sampleRate passed to renderAudio/renderMedia matches across calls","Upgrade @remotion/renderer and remotion to matching versions so start-time computation is consistent"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try { await renderMedia({...}); } catch (e) { if (e.message.includes('start time for inline audio asset')) { /* align Audio start positions or split files, then re-render */ } }","preventionTips":["Use one start position per unique audio src","Keep @remotion/* packages on the same version","Pass a consistent sampleRate to all audio render calls"],"tags":["audio","inline-audio","mixing","renderer"],"backgroundTag":"audio-start-time-mismatch","analyzedSha":"a6a7485a9aeb04219510fbe4874f8941486424df","analyzedAt":"2026-08-28T15:39:09.316Z","contentChangedAt":"2026-08-28T15:39:09.316Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}