Я создаю аудиоплеер, используя Electron и Web Audio API .Мой текущий подход к открытию и воспроизведению аудиофайлов выглядит следующим образом:
Пользователь с собственным диалоговым окном выбирает аудиофайлы - он загружает пути к файлам в локальное хранилище (хранилище приложений)
Нажатие «кнопки воспроизведения» считывает файл и преобразует его в буфер массива, чтобы файл был приемлем для Web Audio API.
const buffer = toArrayBuffer(fs.readFileSync(filePath));
const audioBuffer = await ctx.decodeAudioData(buffer);
const soundNode = new AudioBufferSourceNode(ctx, { buffer:
audioBuffer });
Обычно этоработает достаточно хорошо.Когда я использую файлы размером более 5 МБ, открытие и преобразование, показанное выше, обычно занимает слишком много времени.Например, открытие 9 МБ файла заняло ~ 3 секунды .Это решение неприемлемо, и у меня есть несколько дополнительных вопросов.
- Стоит ли «предварительно загружать» аудиофайлы в локальное хранилище, когда они открываются на шаге 1 (диалог открытия)?
- Электрон с Web Audio API недостаточно эффективен, чтобы создать настольный плеер, работающий быстро с локальными файлами?(Надеюсь нет)