1

ArrayBufferを(mp3をarraybufferとして取得するためのXMLHttpRequest呼び出しから)Web sqlデータベースに保存し、オブジェクトArrayBufferを返すsqlクエリから取得するコードがあります。ただし、decodeAudioDataまたはcreateBufferを実行しようとすると、タイプエラーが発生します。

var buffer = audioContext.createBuffer(result.xtalk、false);

キャッチされないTypeErrorを与える:タイプエラー

result.xtalkにアラートを入れた場合はオブジェクトArrayBufferです

これはMacのChrome21.0.1180.75にあります

ArrayBufferを作成し、バイトごとに埋めてからそれを渡してみましたが、それも機能しませんでした。

4

1 に答える 1

0

このチュートリアルを確認してください。

var dogBarkingBuffer = null;
var context = new webkitAudioContext();

function loadDogSound(url) {
  var request = new XMLHttpRequest();
  request.open('GET', url, true);
  request.responseType = 'arraybuffer';

   // Decode asynchronously
  request.onload = function() {
  context.decodeAudioData(request.response, function(buffer) {
    dogBarkingBuffer = buffer;
  }, onError);
}
request.send();

}

次のリンクを参照してください:-http: //www.html5rocks.com/en/tutorials/webaudio/intro/

また、受け取っているarraybufferオブジェクトに対して「typeof」を実行します。Arraybufferには、byteLengthと呼ばれるプロパティがあります。

未定義の場合、SQLデータベースから受け取ったオブジェクトがarraybufferオブジェクトではないことを意味します

参照:-https://developer.mozilla.org/en-US/docs/JavaScript_typed_arrays/ArrayBuffer

于 2012-08-13T16:26:37.927 に答える