HTML 입력 범위 슬라이더 값을 sliderVal snareDrum 변수의 인수 슬롯에 동적으로 가져 오려고합니다.새 개체 인수에 HTML 입력 범위 값 가져 오기
document.getElementById('slider').addEventListener('change', function() {
var sliderVal = document.getElementById("slider").value;
// Event handler code....I tried a bunch of different things
});
// Don't know how to get it to the sliderVal argument.
var snareDrum = new audioApiKey("snareDrum","snare.mp3",false, sliderVal);
// Abstracted Web Audio playback Block
var context = new webkitAudioContext();
function audioApiKey(domNode,fileDirectory,loopOnOff,playBackSpeed) {
this.domNode = domNode;
this.fileDirectory = fileDirectory;
this.playBackSpeed = playBackSpeed;
var bufferFunctionName = bufferFunctionName;
var incomingBuffer;
var savedBuffer;
var xhr;
bufferFunctionName = function() {
var source = context.createBufferSource();
source.buffer = savedBuffer;
source.loop = loopOnOff;
source.playbackRate.value = playBackSpeed;
source.connect(context.destination);
source.noteOn(0); // Play sound immediately
};
var xhr = new XMLHttpRequest();
xhr.open('get',fileDirectory, true);
xhr.responseType = 'arraybuffer';
xhr.onload = function() {
context.decodeAudioData(xhr.response,
function(incomingBuffer) {
savedBuffer = incomingBuffer;
var note = document.getElementById(domNode);
note.addEventListener("click", bufferFunctionName , false);
}
);
};
xhr.send();
};
는 다음 코드를 작동하고 있지만 그것의 외모, audioApiKey 및 bufferFunctionName
var snareDrumPitchSlider = document.getElementById("snareDrumPitchSlider");
var snareDrum = new audioApiKey("snareDrum","snare.mp3",false,"snareDrumPitchSlider");
// Abstracted Web Audio playback Block
var context = new webkitAudioContext();
function audioApiKey(domNode,fileDirectory,loopOnOff,pitchSlider) {
this.domNode = domNode;
this.fileDirectory = fileDirectory;
this.pitchSlider = pitchSlider;
var bufferFunctionName = bufferFunctionName;
var incomingBuffer;
var savedBuffer;
var xhr;
bufferFunctionName = function() {
var source = context.createBufferSource();
source.buffer = savedBuffer;
source.loop = loopOnOff;
var speed = document.getElementById(pitchSlider).value; // Added
source.playbackRate.value = speed;
source.connect(context.destination);
source.noteOn(0); // Play sound immediately
};
var xhr = new XMLHttpRequest();
xhr.open('get',fileDirectory, true);
xhr.responseType = 'arraybuffer';
xhr.onload = function() {
context.decodeAudioData(xhr.response,
function(incomingBuffer) {
savedBuffer = incomingBuffer;
var note = document.getElementById(domNode);
note.addEventListener("click", bufferFunctionName , false);
}
);
};
xhr.send();
};
jQuery와 javascript가 혼동을 일으키고 있습니다. jQuery 객체에 대해서만 jQuery 메서드를 실행할 수있다. –
죄송합니다. – William
jQuery 객체가'var'$ obj = $()'로 시작하는 jquery 객체 인 변수가 여러번있는 이유 때문에 jQuery 객체 란 무엇인지 잊어 버리지 않고 무엇이 아닌지 – Chad