2012-12-19 17 views

答えて

1

仕様は言う:

type属性は、それが がそれをフェッチする前に、このメディア・リソースを再生することができた場合 ユーザエージェントが決定を支援するために、メディアリソースの種類を提供します。

仕様自体は、サポートするオーディオまたはビデオ形式を指定しておらず、サポートは個々のブラウザまでです。

...私が知る限り、どのブラウザも.spxをサポートしていません。

2

私はGitHub(https://github.com/jpemartins/speex.js)のspeex.jsが問題を解決できることを発見しました。 speex.jsを使用すると、Chrome/Firefoxと他の多くの最新ブラウザでサポートされているwav on flyにデコードした&デコードspeexファイル(* .spxまたは* .ogg)をHTML5対応にデモできます。あなたのHTML内

  • は、以下の機能がwavファイルのコーデックにSPXを変換するトリックを行います
<script src="bitstring.js"></script> 
<script src="pcmdata.min.js"></script> 
<script src="speex.js"></script> 
/** 
    * @param bufSpx ArrayBuffer (Uint8Array) holding content of speex file (*.spx or *.ogg) 
    */ 
function decodeFile(bufSpx) { 
    var stream, samples, st; 
    var ogg, header, err; 

    ogg = new Ogg(bufSpx, {file: true}); 
    ogg.demux(); 
    stream = ogg.bitstream(); 

    header = Speex.parseHeader(ogg.frames[0]); 
    console.log(header); 

    comment = new SpeexComment(ogg.frames[1]); 
    console.log(comment.data); 

    st = new Speex({ 
    quality: 8, 
    mode: header.mode, 
    rate: header.rate 
    }); 

    samples = st.decode(stream, ogg.segments); 

    var waveData = PCMData.encode({ 
     sampleRate: header.rate, 
     channelCount: header.nb_channels, 
     bytesPerSample: 2, 
     data: samples 
    }); 

    // array buffer holding audio data in wav codec 
    var bufWav = Speex.util.str2ab(waveData); 
    // convert to a blob object 
    var blob = new Blob([bufWav], {type: "audio/wav"}); 
    // return a "blob://" url which can be used as a href anywhere 
    return URL.createObjectURL(blob); 
} 
関連する問題