Загрузка и управление локальным файлом через AudioLoader (Three. js) - PullRequest
0 голосов
/ 07 августа 2020

Я новичок в использовании Three. js, и я пытаюсь использовать его для создания приложения. Я немного застрял на определенном этапе, и, похоже, я не могу найти никаких ответов в Интернете, чтобы решить эту проблему.

Я хочу позволить пользователю выбрать локальный файл, а затем управлять воспроизведение этого файла с помощью элементов управления звуком. Я смог заставить его работать успешно, просто создав тег и передав это значение в элементы управления звуком. Однако я хотел бы вместо этого использовать AudioLoader, поскольку мне нужно было бы получить среднюю частоту для аудиофайла в дальнейшем.

Я создал jsfiddle с кодом, который у меня есть до сих пор, и прокомментировал с той части, что мне интересно, внутри функции loadAudio (). И скрипка, и часть кода, который мне интересно, размещены ниже.

https://jsfiddle.net/bxt0g4ps/

audioLoader.load("cold.mp3", function( buffer ) {    <--- I need to change "cold.mp3" to a user defined file.
    sound.setBuffer( buffer );
    sound.setLoop(true);
    sound.setVolume(0.5);
    sound.play();
});
audio.src = URL.createObjectURL(input.files[0]);    <--- I need to change input.files[0] to whatever the equivalent part of "sound" is, however I can't seem to figure this one out.

В настоящее время он работает, но я хочу измените передачу «input.files [0]» на «audio.src» и вместо этого передайте ему «звук», но чтобы иметь возможность сделать это, мне сначала нужно выяснить, как я могу изменить значение текущего файла «Cold.mp3» в переменную, содержащую файл, загруженный пользователем.

Если кто-нибудь знает, как это сделать, я буду очень признателен!

...