feat: add opt-in procedural drive audio
This commit is contained in:
@@ -12,6 +12,7 @@ import SceneCanvas from './SceneCanvas.vue';
|
||||
import SiteNavigation from './SiteNavigation.vue';
|
||||
import ToolkitGrid from './ToolkitGrid.vue';
|
||||
import { useAdaptiveQuality } from '@/composables/useAdaptiveQuality';
|
||||
import { useAudioEngine } from '@/composables/useAudioEngine';
|
||||
import { useJourneySections } from '@/composables/useJourneySections';
|
||||
import { useKeyboardNavigation } from '@/composables/useKeyboardNavigation';
|
||||
import { useMotionPreferences } from '@/composables/useMotionPreferences';
|
||||
@@ -43,6 +44,11 @@ const journey = useJourneySections(
|
||||
navigation.state,
|
||||
computed(() => motion.policy.value.allowSceneRequest),
|
||||
);
|
||||
const audio = useAudioEngine({
|
||||
intensity: computed(() => journey.value.acceleration),
|
||||
volume: motion.volume,
|
||||
setVolume: motion.setVolume,
|
||||
});
|
||||
const sceneState = shallowRef<SceneHostState>('idle');
|
||||
const pageLifecycle = shallowRef<'active' | 'frozen' | 'disposed'>('active');
|
||||
const controlsReady = shallowRef(false);
|
||||
@@ -175,9 +181,16 @@ onUnmounted(() => removePageListeners());
|
||||
:policy="displayedPolicy"
|
||||
:maximum-quality="controlsReady ? motion.maximumQuality.value : 'high'"
|
||||
:scene-status="displayedSceneState"
|
||||
:audio-state="audio.state.value"
|
||||
:audio-muted="audio.muted.value"
|
||||
:audio-volume="controlsReady ? motion.volume.value : 0.4"
|
||||
@pause="motion.setPaused(true)"
|
||||
@resume="motion.setPaused(false)"
|
||||
@enable="enableMotion"
|
||||
@quality-change="setQuality"
|
||||
@audio-start="audio.startFromGesture"
|
||||
@audio-resume="audio.resumeFromGesture"
|
||||
@audio-mute-toggle="audio.toggleMuted"
|
||||
@audio-volume-change="audio.setVolume"
|
||||
/>
|
||||
</template>
|
||||
|
||||
Reference in New Issue
Block a user