| import{Fragment as e,computed as t,createBaseVNode as n,createBlock as r,createElementBlock as i,createTextVNode as a,createVNode as o,defineComponent as s,isRef as c,onMounted as l,onUnmounted as u,openBlock as d,ref as f,renderList as p,toDisplayString as m,toRef as h,unref as g,until as _,useDevicesList as v,useUserMedia as y,watch as b,withCtx as x}from"./index-C-t5bjx6.js";import"./import-url-browser-BPXUaBlv.js";import"./duckdb-mvp-C3i5IjU8.js";import"./index-CISmcbXk-BKEuzw_9.js";import"./types-AwjH7X1C.js";import"./stores-BW_6w_OI.js";import{Button_default as S}from"./Button-DE0e46lv.js";import{Option_default as C,Select_default as w}from"./src-B9Iy8991.js";import"./components-DaLVZOhF.js";import"./queues-DD1Fxfss.js";import"./composables-CEnUnIM2.js";import"./sleep-CvjNLutj.js";import"./queue-Bp4D1cP3.js";import"./dist-F6JCieW1.js";import"./webgpu-aYTuek9b.js";function T(){var e;let n=v({constraints:{audio:!0},requestPermissions:!1}),r=f((e=n.audioInputs.value[0])?.deviceId||``),i=f(),a=t(()=>n.audioInputs.value),o=f({audio:!0}),s=y({constraints:o,autoSwitch:!0,enabled:!1});async function c(){n.permissionGranted.value||n.isSupported.value&&await n.ensurePermissions()}b(r,()=>{r.value&&(o.value={audio:{deviceId:{exact:r.value}}})},{immediate:!0}),b(n.audioInputs,()=>{i.value=a.value.find(e=>e.deviceId===r.value)},{immediate:!0}),b([n.permissionGranted,a,r],async()=>{await c(),n.permissionGranted.value&&a.value.length!==0&&(i.value||=a.value[0])},{immediate:!0});async function l(){await c(),n.permissionGranted.value&&i.value&&(s.enabled.value&&s.restart(),s.start())}function u(){s.stop()}return{selectedAudioInputId:r,selectedAudioInput:i,audioInputs:a,start:l,stop:u,request:c,media:s}}function E(e,t=()=>Promise.resolve()){let n=f(),r=h(e);async function i(){if(await t(),await _(r).toBeTruthy(),!r.value){console.error(`No media media available`);return}n.value=new MediaRecorder(r.value),n.value.start()}function a(){n.value&&(n.value.stop(),n.value.ondataavailable=e=>{let t=e.data,n=URL.createObjectURL(t),r=new Audio(n);r.play()})}return{startRecord:i,stopRecord:a}}const D={class:`mt-4 w-full flex justify-center gap-2`};var O=s({__name:`audio-record`,setup(t){let{audioInputs:s,selectedAudioInputId:f,start:h,stop:_,media:v,request:y}=T(),{startRecord:b,stopRecord:O}=E(v.stream,h);return l(()=>y()),u(()=>_()),(t,l)=>(d(),i(`div`,null,[o(g(w),{modelValue:g(f),"onUpdate:modelValue":l[0]||=e=>c(f)?f.value=e:null,onChange:l[1]||=()=>g(h)()},{default:x(({value:e})=>{var t;return[n(`div`,null,m(e?(t=g(s).find(t=>t.deviceId===e))?.label:`Select Audio Input`),1)]}),options:x(({hide:t})=>[(d(!0),i(e,null,p(g(s),e=>(d(),r(g(C),{key:e.deviceId,value:e.deviceId,active:e.deviceId===g(f),onClick:e=>t()},{default:x(()=>[a(m(e.label),1)]),_:2},1032,[`value`,`active`,`onClick`]))),128))]),_:1},8,[`modelValue`]),n(`div`,D,[o(g(S),{onClick:g(b)},{default:x(()=>l[2]||=[a(` Start Recording `)]),_:1,__:[2]},8,[`onClick`]),o(g(S),{onClick:g(O)},{default:x(()=>l[3]||=[a(` Stop Recording `)]),_:1,__:[3]},8,[`onClick`])])]))}}),k=O;export{k as default}; |