代码之家  ›  专栏  ›  技术社区  ›  Maxime Dupré

fmt块的WAVE文件扩展部分

  •  1
  • Maxime Dupré  · 技术社区  · 7 年前

    wFormatTag 那是3( WAVE_FORMAT_IEEE_FLOAT ). Firefox款待 WAVE\u FORMAT\u IEEE\u FLOAT WAVE_FORMAT_EXTENSIBLE ,这意味着它希望 文件包含fmt区块的扩展部分。

    The buffer passed to decodeAudioData contains invalid content which cannot be decoded successfully.

    wValidBitsPerSample 在字节38处, dwChannelMask 在字节40和 SubFormat 字节44。 我应该为这三个标题字段添加什么信息?这些信息的含义是什么?如何将它们以8-16-32位整数的形式相加?

    谢谢你的帮助:)。

    console.log('ckID', String.fromCharCode(dataView.getUint8(0))); // R
    console.log('ckID', String.fromCharCode(dataView.getUint8(1))); // I
    console.log('ckID', String.fromCharCode(dataView.getUint8(2))); // F
    console.log('ckID', String.fromCharCode(dataView.getUint8(3))); // F
    
    console.log('cksize', dataView.getUint32(4, true)); // 65623058
    
    console.log('WAVEID', String.fromCharCode(dataView.getUint8(8))); // W
    console.log('WAVEID', String.fromCharCode(dataView.getUint8(9))); // A
    console.log('WAVEID', String.fromCharCode(dataView.getUint8(10))); // V
    console.log('WAVEID', String.fromCharCode(dataView.getUint8(11))); // E
    
    console.log('ckID', String.fromCharCode(dataView.getUint8(12))); // f
    console.log('ckID', String.fromCharCode(dataView.getUint8(13))); // m
    console.log('ckID', String.fromCharCode(dataView.getUint8(14))); // t
    console.log('ckID', String.fromCharCode(dataView.getUint8(15))); //
    
    console.log('cksize', (dataView.getUint32(16, true))); // 16
    
    console.log('wFormatTag', (dataView.getUint16(20, true))); // 3
    
    console.log('nChannels', (dataView.getUint16(22, true))); // 2
    
    console.log('nSamplesPerSec', (dataView.getUint32(24, true))); // 44100
    
    console.log('nAvgBytesPerSec', (dataView.getUint32(28, true))); // 352800
    
    console.log('nBlockAlign', (dataView.getUint16(32, true))); // 8
    
    console.log('wBitsPerSample', (dataView.getUint16(34, true))); // 32
    
    console.log('cbSize', (dataView.getUint16(36, true))); // 0
    
    console.log('ckID', String.fromCharCode(dataView.getUint8(38))); // f
    console.log('ckID', String.fromCharCode(dataView.getUint8(39))); // a
    console.log('ckID', String.fromCharCode(dataView.getUint8(40))); // c
    console.log('ckID', String.fromCharCode(dataView.getUint8(41))); // t
    
    console.log('cksize', (dataView.getUint16(42, true))); // 4
    
    console.log('dwSampleLength', (dataView.getUint16(46, true))); // 10876
    
    console.log('ckID', String.fromCharCode(dataView.getUint8(50))); // d
    console.log('ckID', String.fromCharCode(dataView.getUint8(51))); // a
    console.log('ckID', String.fromCharCode(dataView.getUint8(52))); // t
    console.log('ckID', String.fromCharCode(dataView.getUint8(53))); // a
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Raymond Toy    7 年前

    根据 https://bugzilla.mozilla.org/show_bug.cgi?id=1349658 ,Firefox不支持float32 WAV文件。

    推荐文章
    Alen  ·  用NAudio混合波流
    10 年前