2013-06-02 10 views
15

मैं पूछ रहा हूं क्योंकि मुझे कहीं भी जवाब नहीं मिला। जेएस में माइक्रोफ़ोन इनपुट रिकॉर्ड करने के लिए मैंने सफलतापूर्वक RecorderJS लागू किया है। हालांकि, दर्ज की गई फाइल डब्ल्यूएवी है जिसके परिणामस्वरूप बड़ी फाइलें होती हैं। मैं जेएस के साथ सीधे एमपी 3 के साथ रिकॉर्ड करने का तरीका ढूंढ रहा हूं, या किसी भी तरह से डब्ल्यूएवी के बजाय एमपी 3 को बिट्स एन्कोड कर रहा हूं।वेब ऑडियो एपीआई - एमपी 3 के लिए रिकॉर्ड?

यह कैसे किया जा सकता है? क्या कोई वेब ऑडियो एपीआई फ़ंक्शन है जो कि किसी भी प्रकार का जेएस एमपी 3 एन्कोडर कर सकता है?

+0

मुझे केवल दूसरे तरीके से राउंड डिकोडिंग पता है, जिसका मतलब एमपी 3 से डब्ल्यूएवी - https://github.com/audiocogs/mp3.js पर जाना है। जेएस में एमपी 3 एन्कोडर के लिए WAV प्राप्त करने के लिए आपको शायद https://github.com/kripken/emscripten में खोदने की आवश्यकता होगी। – Stasik

+0

धन्यवाद, मैं एम्सस्क्रिप्टन में देख रहा हूं लेकिन मुझे अभी भी यह नहीं दिख रहा है कि यह कैसे मदद कर सकता है। – Light

+0

खैर आपको कुछ सी-लिखित Wav-mp3 डिकोडर, और ब्राउज़र में एमपी 3 में डीकोड wav से प्राप्त करने की आवश्यकता है :) – Stasik

उत्तर

10

मैंने देखा है केवल एकमात्र जावास्क्रिप्ट एमपी 3 एन्कोडर https://github.com/akrennmair/libmp3lame-js है, जो ईएमएसक्रिप्ट का उपयोग कर बंदरगाह है। यह धीमा होना चाहिए, और मैंने इसका कभी भी उपयोग नहीं किया है।

मुझे किसी भी मूल रूप से लिखित जावास्क्रिप्ट एमपी 3 एन्कोडर्स के बारे में पता नहीं है, और एन्कोडिंग वेब ऑडियो एपीआई द्वारा कवर नहीं है। छोटे प्रारूपों में

1

एन्कोडिंग वर्तमान में केवल फ़ायरफ़ॉक्स द्वारा समर्थित है:

Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit) Not supported 25.0 (25.0) Not supported Not supported Not supported

AFAIK केवल OGG समर्थित है। लेकिन डब्ल्यूएवी की तुलना में बेहतर ओजीजी। https://github.com/nusofthq/Recordmp3js जो भी है बहुत अच्छी तरह से यहां विस्तार से बताया::

1

किसी अन्य ढांचे एक वेब कार्यकर्ता का उपयोग किए बिना जावास्क्रिप्ट का उपयोग कर एमपी 3 रिकॉर्ड करने के लिए, तो आप इस परियोजना का उपयोग कर सकते

https://nusofthq.com/blog/recording-mp3-using-only-html5-and-javascript-recordmp3-js/

इस के साथ

, यह भी संभव है लिखने के लिए एक। एमपी 3 फ़ाइल के लिए और इसे डाउनलोड करने के लिए।

5

शुद्ध जावास्क्रिप्ट में लिखी गई लाइब्रेरी है, जिसे लमेज कहा जाता है। कच्चे ऑडियो से एमपी 3 एन्कोड करने के लिए। यह libmp3lame की emscripten संकलन से बहुत तेज है।https://github.com/zhuker/lamejs

उदाहरण उपयोग:

lib = new lamejs(); 
mp3encoder = new lib.Mp3Encoder(1, 44100, 128); //mono 44.1khz encode to 128kbps 
samples = new Int16Array(44100); //one second of silence 
var mp3 = mp3encoder.encodeBuffer(samples); //encode mp3 
+0

lamejs मेरे लिए अच्छा काम किया। ऐसा लगता है कि कार्यकर्ता धागे की आवश्यकता को खत्म करने, रीयलटाइम को बनाए रखने में कोई परेशानी नहीं है। मैंने एक विस्तृत विवरण के साथ [मेरी साइट] (https://aws.nlited.org/mp3.htm) पर एक परीक्षण पृष्ठ बनाया है। – TeasingDart

2

मैं मौजूदा समाधान इस समस्या के साथ निराश था, और, इसलिए मैं सरल कुछ के साथ आया था:

https://github.com/sb2702/audioRecord.js

प्रयोग

एक रिकॉर्डर ऑब्जेक्ट बनाएं (async क्योंकि उपयोगकर्ता permissio की आवश्यकता है n)

Recorder.new(function(recorder){ 

    }); 

प्रारंभ रिकॉर्डिंग

  recorder.start();   

बंद हो जाता है एमपी 3 के रूप में रिकॉर्डिंग

  recorder.stop();  

निर्यात

  recorder.exportMP3(function(mp3Blob){ 

      console.log("Here is your blob: " + URL.createObjectURL(mp3Blob)); 

      }); 

अधिकतर RecorderJS के आधार पर है, लेकिन बदल कुछ बातें चारों ओर करने के लिए निर्यात करने के लिए एमपी 3 फ़ाइलें, और एन के लिए OT AudioContext/navigator.getUs साथ आसपास गंदगी के लिए है

2

मैं लाइव डेमो के साथ एक अच्छा पुस्तकालय पाया है: MediaStreamRecorder

क़ौम से एक यहां है: Audio Recording

RecordRTC भी है उपयोगी हो सकता है, लेकिन यह MSR लगता है कि साथ शुरू करना आसान है।

संबंधित मुद्दे