2013-09-06 6 views
6

मैं कुछ वेब-ऑडियो-एडिटर की तरह कुछ लिख रहा हूं, और मुझे लगता है कि मैं मूल बातें खत्म करने के करीब हूं। मैं एक ऑडियोफाइल खेल सकता हूं और रोक सकता हूं, लेकिन जब मैं प्ले विधि को फिर से कॉल करने का प्रयास करता हूं तो यह काम नहीं करेगा, भले ही पैरामीटर बदल नहीं गए हों।वेबऑडियो स्टॉप के बाद नहीं खेल रहा है (0)

मुझे किसी को मेरी समस्या को देखने में खुशी होगी क्योंकि मैं नहीं देख सकता कि यह क्यों काम नहीं करता है जब यह अन्य परियोजनाओं में समान कोड करता है। दुर्भाग्य से मैं एक jsfiddle नहीं बना सकता, क्योंकि मुझे बाहरी एमपी 3 फ़ाइल लोड करने की आवश्यकता होगी और ऐसा लगता है कि मुझे ऐसा करने की अनुमति नहीं है। लेकिन मैंने जावास्क्रिप्ट here और संबंधित HTML फ़ाइल here चिपका दी है।

आपको बस एक सर्वर है जिसे आप फ़ाइलों को अपलोड कर सकते हैं और उस पर एक एमपी 3 अपलोड कर सकते हैं। वैकल्पिक रूप से आप this link का उपयोग कर सकते हैं, लेकिन मैं अंततः फाइलों को हटा दूंगा।

उत्तर

8

आप start() पर AudioBufferSourceNode पर एक से अधिक बार कॉल नहीं कर सकते हैं। वे केवल एक बार उपयोग हैं।

वास्तव में ऐसा करने का एकमात्र तरीका यह है कि हर बार प्लेबैक शुरू करने के लिए अंतर्निहित AudioBuffer से नया AudioBufferSourceNode बनाएं।

+0

धन्यवाद, मैं कोशिश करूँगा। सभी गुणों को एक नई ऑडियोबफर सॉर्स नोड में "प्रतिलिपि" करने का सबसे तेज़ तरीका क्या होगा? क्या ऐसा कोई कारण है कि ऐसा क्यों किया जाना चाहिए? मैं किसी के बारे में सोच सकता हूं जो असली समझ में आता है। –

+1

आपको बस इतना करना है कि 'var newSource = context.createBufferSource(); newSource.buffer = oldAudioBuffer; '। इस तरह से यह क्यों काम करता है ... वास्तव में यकीन नहीं है। मुझे संदेह है कि इसे स्मृति/प्रदर्शन के साथ करना है। –

0

आप इसे भी छोड़ सकते हैं और इसे लाभ-नोड से डिस्कनेक्ट कर सकते हैं, और ऑसीलेटर संभवतः केवल मूर्ख/चुपचाप तरंग उत्पन्न करेगा।

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