Newbie Webaudio "howto load and play local file"

50 views
Skip to first unread message

Jonas Thörnvall

unread,
Apr 8, 2019, 3:04:24 AM4/8/19
to Web Music Developers JP
I've tried to load and play a local file but gets complain about it not an audio buffer.

var audioCtx = new (window.AudioContext || window.webkitAudioContext)(); 
var channels = 2; 
var frameCount = audioCtx.sampleRate * 2.0; 
var audiobuffer = audioCtx.createBuffer(channels, frameCount, audioCtx.sampleRate); 

function loadFileAsAudio() 

    var fileToLoad = document.getElementById("fileToLoad").files[0]; 

    //document.getElementById("inputFileNameToSaveAs").value = filename; 
    var fileReader = new FileReader(); 
    fileReader.onload = function(fileLoadedEvent) 
    { 
        audiobuffer = fileLoadedEvent.target.result; 
        audioobject = audioCtx.createBufferSource(); 
        audioobject.buffer = audiobuffer; 
      
    }; 
    fileReader.readAsArrayBuffer(fileToLoad); 
 } 

function playAudio(){ 
   audioobject.noteOn(0); 
  //Load buffer for playing 
  audioobject.connect(audioCtx.destination); 
  // play buffer 
  audioobject.start(); 

Rilakkuma

unread,
Apr 8, 2019, 12:39:21 PM4/8/19
to Web Music Developers JP
Thank you for your question ! Maybe, the `decodeAudioData` resolves this problem.

```JavaScript
const audioCtx = new (window.AudioContext || window.webkitAudioContext)();

const audiobuffer = null;
const source = null;

function loadFileAsAudio() 

    const file = document.getElementById("fileToLoad").files[0]; 

    //document.getElementById("inputFileNameToSaveAs").value = file.name;

    const fileReader = new FileReader();
 
    fileReader.onload = () => { 
       const arraybuffer = fileReader.result; 
 
       audioCtx.decodeAudioData(arraybuffer).then((audioBuffer) => {
           source = audioCtx.createBufferSource();
           source.buffer = audioBuffer;
       }).catch((error) => console.error(error));
    };

    fileReader.readAsArrayBuffer(file); 
 } 

function playAudio()
{
  source.connect(audioCtx.destination);
  source.start(0);
}
```

2019年4月8日月曜日 16時04分24秒 UTC+9 Jonas Thörnvall:

Jonas Thörnvall

unread,
Apr 9, 2019, 3:56:10 PM4/9/19
to Web Music Developers JP


Thank you very nice of you to help me out, reading API not my strong side.
Wish you a great day.

Best regards Jonas
 
Reply all
Reply to author
Forward
0 new messages