/** * External dependencies */ import { AudioDurationDisplay, micIcon, playerPauseIcon, useMediaRecording, } from '@automattic/jetpack-ai-client'; import { useBlockProps } from '@wordpress/block-editor'; import { Placeholder, Button } from '@wordpress/components'; import { useCallback } from '@wordpress/element'; import { __ } from '@wordpress/i18n'; function AudioPlayer( { src, state } ) { if ( ! src ) { return null; } if ( state !== 'inactive' ) { return null; } return ; // eslint-disable-line jsx-a11y/media-has-caption } export default function CreateWithVoiceEdit() { const { state, start, pause, stop, resume, url } = useMediaRecording( { onDone: blob => { console.log( 'Blob created: ', blob ); // eslint-disable-line no-console }, } ); const recordingHandler = useCallback( () => { if ( state === 'inactive' ) { start( 1000 ); // stream audio every second } else if ( state === 'recording' ) { pause(); } else if ( state === 'paused' ) { resume(); } }, [ state, start, pause, resume ] ); let buttonLabel = __( 'Begin recording', 'jetpack' ); if ( state === 'recording' ) { buttonLabel = __( 'Pause recording', 'jetpack' ); } else if ( state === 'paused' ) { buttonLabel = __( 'Resume recording', 'jetpack' ); } const blockProps = useBlockProps(); return (