2012-03-26 12 views

उत्तर

13

आप कुछ इस तरह कर सकता है:

var context = new AudioContext(), 
    request = new XMLHttpRequest(); 
request.open('GET', 'path/to/audio.mp3', true); 
request.responseType = 'arraybuffer'; 
request.addEventListener('load', function(){ 
    context.decodeAudioData(request.response, function(buffer){ 
     var source = context.createBufferSource(); 
     Array.prototype.reverse.call(buffer.getChannelData(0)); 
     Array.prototype.reverse.call(buffer.getChannelData(1)); 
     source.buffer = buffer; 
    }); 
}); 

यह एक सुपर सरल उदाहरण है - लेकिन मुद्दा यह है कि आप AudioBuffer में प्रत्येक चैनल के लिए Float32Array उदाहरण हड़पने कर सकते हैं मूल रूप से है और उन्हें उलट दें।

+0

यह काम करता है, धन्यवाद। वास्तव में प्लेबैक को नकारात्मक नंबर पर सेट करने की तरह कुछ और ढूंढ रहा था, इसलिए मैं क्लिप में एक ही बिंदु से आसानी से कुछ आगे और पिछड़ा खेल सकता हूं, लेकिन चूंकि आपने एक वैध (और काम करने वाले!) प्रतिक्रिया के साथ प्रश्न का उत्तर दिया है, तो मैं स्वीकार करूंगा यह! – lakenen

+0

हाँ, मुझे लगा कि आप शायद कुछ कम हैकी की तलाश में थे, लेकिन यह एकमात्र दृष्टिकोण था जिसके साथ मैं आ सकता था। इसके लायक होने के लिए, शायद इस दृष्टिकोण के आसपास कुछ कोड बनाना संभव है आप क्या चाहते हैं - लेकिन मैंने वास्तव में फ्लाई पर बफर को वापस करने की कोशिश नहीं की है, इसलिए मैं निश्चित रूप से नहीं कह सकता। किसी भी तरह से, वेब ऑडियो के साथ खेलने वाले अन्य देवताओं को देखना अच्छा होता है एपीआई। उम्मीद है कि कुछ अच्छे दस्तावेज अगले कुछ महीनों में दिखने लगेंगे। –

3

आप एचटीएमएल 5 के <audio> तत्व का उपयोग कर सकते हैं और playbackRate संपत्ति को नकारात्मक मान पर सेट कर सकते हैं।

जावास्क्रिप्ट में अगर आप एक AudioBufferSourceNode तत्व आप निम्नलिखित

var song = document.getElementsByTagName('audio')[0]; 
song.playbackRate = -1; 
+1

ऑडियो टैग मेरी आवश्यकताओं को पूरा नहीं करता है, इसलिए मुझे वेब ऑडियो एपीआई का विशेष रूप से उपयोग करने की आवश्यकता है। – lakenen

+0

प्लेबैक दर 0.5 और 4.0 के बीच होनी चाहिए। नकारात्मक मान अभी तक काम नहीं करते हैं। [एमडीएन स्रोत] (https://developer.mozilla.org/en-US/Apps/Fundamentals/Audio_and_video_delivery/WebAudio_playbackRate_explained) – nicusor

6

कर सकते हैं:

audioBufferSourceNode.playbackRate = -1; 

-EDIT-

वेबकिट कि सुविधा नहीं है।

स्रोत: https://bugs.webkit.org/show_bug.cgi?id=69725

+1

मैंने कोशिश की और यह काम नहीं करता है। PlaybackRate ऑडियोपाराम पर minValue 0 है। जब मैं इसे 0 से कम मान पर सेट करता हूं तो यह डिफ़ॉल्ट वैल्यू (जो 1 है) पर प्लेबैक प्रतीत होता है। – lakenen

+1

ओके ... यह एक वास्तविक बग है जो वेबकिट है :( https://bugs.webkit.org/show_bug.cgi?id=69725 – Nullpo

+1

यह वास्तव में काम करता है तो यह बहुत अच्छा होगा! – lakenen

1
playbackRate = -1.0; 

सफारी में काम करता है (9.1.2) अब!

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