Spaces:
Build error
Build error
File size: 1,109 Bytes
0b2be8e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | import asyncio
import logging
import flet as ft
logger = logging.getLogger(__name__)
async def get_base64_audio(page: ft.Page, audio_blob_uri: str) -> str | None:
start_time = asyncio.get_event_loop().time()
result = None
try:
logger.info("Result URI: %s", audio_blob_uri)
logger.info("="*100)
# Use the eval_js method to execute JavaScript and get the result directly
result = await page.eval_js(f"""
const blob = await fetch('{audio_blob_uri}').then(r => r.blob());
const base64data = await new Promise((resolve) => {{
const reader = new FileReader();
reader.onloadend = () => resolve(reader.result.split(',')[1]);
reader.readAsDataURL(blob);
}});
return base64data;
""")
except Exception as e:
logger.error(f"Error in get_base64_audio: {str(e)}")
finally:
end_time = asyncio.get_event_loop().time()
elapsed_time = end_time - start_time
logger.info(f"Time taken to get base64 audio: {elapsed_time:.2f} seconds")
return result |