2012-05-04 15 views
5

के लूपिंग सेगमेंट को सेट/प्रारंभ/समायोजित करना मैं सी 4 का उपयोग करके नमूने के कुछ हिस्सों को लूप करने में सक्षम होना चाहता हूं। मैं वर्तमान लूप को समाप्त होने के इंतजार किए बिना लूप के बीच भी छोड़ना चाहूंगा। तो उदाहरण के लिए यदि मेरे पास आखिरी बार लूपिंग है और मैं आधा रास्ते से गुजर रहा हूं और मैं पहली बार छोड़ना चाहता हूं, तो यह आखिरी बार समाप्त होने की प्रतीक्षा किए बिना ऐसा करेगा।सी 4 नमूना

मैं "मौजूदा समय" और "touchesBegan" उपयोग कर रहा था इसे सेट अप करने के लिए प्रयास करने के लिए, लेकिन मैं जैसे मैं इसे चाहते हैं कि उसे काम करने के लिए नहीं मिल सकता है। मैं इसके बारे में ढेर ओवरफ्लो पर चारों ओर पढ़ रहा था और ऐसा लगता है कि मुझे एनएसटीमर होना चाहिए? या किसी प्रकार का कॉलबैक या कुछ? मैं यह कैसे कर सकता हूँ?

यहाँ मैं क्या कर लिया है:

@implementation C4WorkSpace { 
     C4Sample *audioSample; 
    } 

    -(void)setup { 
     audioSample = [C4Sample sampleNamed:@"C4Loop.aif"]; 
     [audioSample play]; 
    } 

    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
     audioSample.currentTime = 1.0f; 
     //NSTimer? wait some time and then ? 
     //callback? I don't know how to do that, but is that what I would do here? 
    } 
@end 

उत्तर

1

C4Sample वर्ग अभी पाश के लिए किसी भी क्षमता नहीं है। यदि आप ऐसा करना चाहते हैं तो आपको लूपिंग तंत्र स्वयं बनाना होगा। एनएसटीमर का उपयोग करने के बारे में आपके पहले प्रश्न के शीर्ष पर बहुत सरल होगा।

आप किए जा सकेंगे:

  1. एक पाश शुरू करने का समय
  2. एक पाश अवधि समय
  3. ट्रिगर पाश खेलना शुरू और टाइमर

... शुरू करने के लिए सेट करें, फिर सेट टाइमर audioSample.currentTime = loopStartTimer; सेट करता है जो touchesBegan: विधि में आप इसे कैसे कर रहे हैं, इस प्रकार एक विधि को ट्रिगर करता है।

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