は、それがサポートSPXようだ:使用 http://dev.w3.org/html5/spec-preview/the-source-element.htmlhtml5で.spxファイルを再生するにはどうすればよいですか? HTML5仕様から
を:
しかし、私しようとしてからの、それはあなたが助けることができる、Firefoxの17とChromeの両方で再生できないのですか?
は、それがサポートSPXようだ:使用 http://dev.w3.org/html5/spec-preview/the-source-element.htmlhtml5で.spxファイルを再生するにはどうすればよいですか? HTML5仕様から
を:
しかし、私しようとしてからの、それはあなたが助けることができる、Firefoxの17とChromeの両方で再生できないのですか?
仕様は言う:
type属性は、それが がそれをフェッチする前に、このメディア・リソースを再生することができた場合 ユーザエージェントが決定を支援するために、メディアリソースの種類を提供します。
仕様自体は、サポートするオーディオまたはビデオ形式を指定しておらず、サポートは個々のブラウザまでです。
...私が知る限り、どのブラウザも.spxをサポートしていません。
私はGitHub(https://github.com/jpemartins/speex.js)のspeex.jsが問題を解決できることを発見しました。 speex.jsを使用すると、Chrome/Firefoxと他の多くの最新ブラウザでサポートされているwav on flyにデコードした&デコードspeexファイル(* .spxまたは* .ogg)をHTML5対応にデモできます。あなたのHTML内
<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); }