ソースを参照

loading files and playing them using web audio api

dds
Matt Bradshaw 6年前
コミット
1bec7b51c3
3個のファイルの変更29行の追加1行の削除
  1. +2
    -0
      extras/wav2sketch/.gitignore
  2. +4
    -0
      extras/wav2sketch/wav2sketch.html
  3. +23
    -1
      extras/wav2sketch/wav2sketch.js

+ 2
- 0
extras/wav2sketch/.gitignore ファイルの表示

@@ -0,0 +1,2 @@
AudioSampleKick.cpp
AudioSampleKick.h

+ 4
- 0
extras/wav2sketch/wav2sketch.html ファイルの表示

@@ -4,6 +4,10 @@
</head>
<body>
<h1>Teensy Audio Wav2Sketch Utility</h1>
<p>Upload an audio file to convert it into Teensy audio format.</p>
<form>
<input id="audioFileChooser" name="audioFileChooser" type="file" accept="audio/*">
</form>
<script type="text/javascript" src="wav2sketch.js"></script>
</body>
</html>

+ 23
- 1
extras/wav2sketch/wav2sketch.js ファイルの表示

@@ -1 +1,23 @@
alert("Hello!");
var audioFileChooser = document.getElementById('audioFileChooser');

audioFileChooser.addEventListener('change', readFile);

function readFile() {
// TODO: deal with multiple files
var fileReader = new FileReader();
fileReader.readAsArrayBuffer(audioFileChooser.files[0]);
fileReader.addEventListener('load', function(ev) {
processFile(ev.target.result);
});
}

function processFile(file) {
var context = new window.AudioContext();
context.decodeAudioData(file, function(buffer) {
var source = context.createBufferSource();
source.buffer = buffer;
source.loop = false;
source.connect(context.destination);
source.start(0);
});
}

読み込み中…
キャンセル
保存