2016-04-21 16 views
0

Hereは、Android用ChromeでWebオーディオAPIが動作し、here私はCMブラウザ、Chrome、CyanogenModのデフォルトのAndroid 5.1.1ブラウザをテストしており、すべてがテスト(特にbiquadNodeのもの)に合格しています。Web Audio AndroidのApi biquadFilterは特別な設定が必要ですか?

しかし、this codepenをeq(biquadNode)で開くと、音楽は聞こえますが、eqは機能しません。

biquadNodeはAndroidで動作しますか?特別な実装が必要ですか? Android上でChromeの

var context = new AudioContext(); 
var mediaElement = document.getElementById('player'); 
var sourceNode = context.createMediaElementSource(mediaElement); 

// EQ Properties 
// 
var gainDb = -40.0; 
var bandSplit = [360,3600]; 

var hBand = context.createBiquadFilter(); 
hBand.type = "lowshelf"; 
hBand.frequency.value = bandSplit[0]; 
hBand.gain.value = gainDb; 

var hInvert = context.createGain(); 
hInvert.gain.value = -1.0; 

var mBand = context.createGain(); 

var lBand = context.createBiquadFilter(); 
lBand.type = "highshelf"; 
lBand.frequency.value = bandSplit[1]; 
lBand.gain.value = gainDb; 

var lInvert = context.createGain(); 
lInvert.gain.value = -1.0; 

sourceNode.connect(lBand); 
sourceNode.connect(mBand); 
sourceNode.connect(hBand); 

hBand.connect(hInvert); 
lBand.connect(lInvert); 

hInvert.connect(mBand); 
lInvert.connect(mBand); 

var lGain = context.createGain(); 
var mGain = context.createGain(); 
var hGain = context.createGain(); 

lBand.connect(lGain); 
mBand.connect(mGain); 
hBand.connect(hGain); 

var sum = context.createGain(); 
lGain.connect(sum); 
mGain.connect(sum); 
hGain.connect(sum); 
sum.connect(context.destination); 

// Input 
// 
function changeGain(string,type) 
{ 
    var value = parseFloat(string)/100.0; 

    switch(type) 
    { 
    case 'lowGain': lGain.gain.value = value; break; 
    case 'midGain': mGain.gain.value = value; break; 
    case 'highGain': hGain.gain.value = value; break; 
    } 
} 

答えて

1

createMediaElementSourceを投稿するために必要な

*コードのペンは、一般的には動作しません。しかし、最近のChromeのビルド(49以降)をお持ちの場合はchrome://flagsにアクセスし、統合メディアパイプラインオプションを有効にしてください。それはcreateMediaElementSourceをデスクトップのように動作させるでしょう。

+0

このオプションを有効にするために私のウェブサイトの訪問者に伝える必要があります。「chrome:// flags /#enable-unified-media-pipeline」 – distante

+0

はい。 Chrome 49以降を使用している場合私はいつかこれがデフォルトになると思っていますが、わかりません。 –

関連する問題