2013-06-15 15 views
8

में bytearray से संगीत चलाएं क्या एचटीएमएल 5 में फाइल के बजाए बाइट्स से संगीत चलाने का कोई तरीका है?एचटीएमएल 5

मुझे संगीत बाइट स्ट्रीम करने और उन्हें लाइव खेलने की आवश्यकता है।

+0

HTML5 ऑडियो कर सकते हैं स्ट्रीम स्ट्रीम करें, यह एक हिमस्खलन सर्वर – r043v

उत्तर

4

कृपया जाँच इस

var dogBarkingBuffer = null; 
// Fix up prefixing 
window.AudioContext = window.AudioContext || window.webkitAudioContext; 
var context = new AudioContext(); 

function loadDogSound(url) { 
    var request = new XMLHttpRequest(); 
    request.open('GET', url, true); 
    request.responseType = 'arraybuffer'; 

    // Decode asynchronously 
    request.onload = function() { 
    context.decodeAudioData(request.response, function(buffer) { 
     dogBarkingBuffer = buffer; 
    }, onError); 
    } 
    request.send(); 
} 

ऑडियो फ़ाइल डेटा बाइनरी (नहीं पाठ) है, इसलिए हम 'arraybuffer' के लिए अनुरोध के responseType निर्धारित किया है। ArrayBuffers के बारे में अधिक जानकारी के लिए, XHR2 के बारे में इस आलेख को देखें।

एक बार (अनिश्चित) ऑडियो फ़ाइल डेटा प्राप्त हो जाने के बाद, इसे बाद में डिकोडिंग के लिए रखा जा सकता है, या इसे ऑडियोकॉन्टेक्स्ट डीकोडऑडियोियोटा() विधि का उपयोग करके तुरंत डीकोड किया जा सकता है। यह विधि अनुरोध में संग्रहीत ऑडियो फ़ाइल डेटा का ऐरेबफर लेता है। प्रतिक्रिया और इसे असीमित रूप से डीकोड करता है (मुख्य जावास्क्रिप्ट निष्पादन थ्रेड को अवरुद्ध नहीं करता)।

जब डीकोडऑडियोियोटा() समाप्त हो जाता है, तो यह कॉलबैक फ़ंक्शन को कॉल करता है जो डीकोडेड पीसीएम ऑडियो डेटा को ऑडियोबफर के रूप में प्रदान करता है।

और यहाँ संदर्भ ==>HML5 audio

अद्यतन:

context= typeof AudioContext !== 'undefined' ? new AudioContext() : new webkitAudioContext(); 

के बजाय: यह फ़ायरफ़ॉक्स और क्रोम उपयोग पर काम करने देने के लिए

var context = new AudioContext(); 
+0

के साथ ठीक काम करता है, यह केवल Google क्रोम के लिए करता है! – Ata

+0

@Ata फ़ायरफ़ॉक्स पर काम करने के लिए अपडेट किया गया – Muath