2012-12-19 17 views
6

html5 कल्पना से, यह समर्थन SPX लगते हैं: http://dev.w3.org/html5/spec-preview/the-source-element.htmlमैं html5 द्वारा .spx फ़ाइल कैसे चला सकता हूं?

का उपयोग करना:

लेकिन मेरी कोशिश कर, यह दोनों फ़ायरफ़ॉक्स 17 और Chrome में नहीं हो सकता है, आपकी मदद कर सकता है?

उत्तर

1

कल्पना का कहना है:

प्रकार विशेषता मदद करने के लिए इसे प्राप्त करने में कठिनाई से पहले इस मीडिया संसाधन खेल सकते हैं अगर उपयोगकर्ता एजेंट निर्धारित मीडिया संसाधन के प्रकार देता है।

spec स्वयं समर्थित होने के लिए कोई ऑडियो या वीडियो प्रारूप निर्दिष्ट नहीं करता है और समर्थन व्यक्तिगत ब्राउज़र पर निर्भर करता है।

... और कोई ब्राउजर समर्थित नहीं है .spx जहां तक ​​मुझे पता है।

2

मुझे पता चला है कि gitHub (https://github.com/jpemartins/speex.js) पर speex.js आपकी समस्या का समाधान कर सकते हैं। Speex.js के साथ आप फ्लाई पर wav करने के लिए & डीकोड speex फ़ाइल (* .spx या * .ogg) डेमक्स कर सकते हैं, जो क्रोम/फ़ायरफ़ॉक्स और कई अन्य आधुनिक ब्राउज़र HTML5 द्वारा समर्थित है।

<script src="bitstring.js"></script> 
<script src="pcmdata.min.js"></script> 
<script src="speex.js"></script> 
  • समारोह नीचे तहत thoese * .js फ़ाइल को शामिल चाल करना होगा wav करने के लिए कोडेक SPX कन्वर्ट करने के लिए:
/** 
    * @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); 
} 
संबंधित मुद्दे