2012-12-27 17 views
6

मैं एक ऐसा एप्लिकेशन बना रहा हूं जिसमें मुझे गाने को मिश्रण करना होगा। मैंने इसे पूरा कर लिया है लेकिन समस्या यह है कि जब मैं निम्नलिखित फ़ंक्शन का उपयोग कर रहा हूं।फ्लैट वैल्यू कैसे पास करें जहां डेटाटाइप सीएमटाइम है?

- (BOOL)insertTimeRange:(CMTimeRange)timeRange ofTrack:(AVAssetTrack *)track atTime:(CMTime)startTime error:(NSError **)error; 

मैं atTime पैरामीटर में CMTime प्रकार मान पारित करने के लिए है, लेकिन यह मूल्य फ्लोट लेता नहीं है और मैं कुछ चल बिन्दु मूल्य पर एक और गीत को जोड़ने के लिए है। क्या यह किसी भी तरह से संभव है?

उत्तर

14

आप CMTimeMake...()functions में से एक का उपयोग कर सकते हैं। आपको एक समय बिंदु और एक समय-समय पर मूल्य प्रदान करना होगा। पूर्व 64-बिट पूर्णांक है; तुम सिर्फ काटना कर सकते हैं या दौर अपने float यह एक पूर्णांक में बदलने का है, या एक जरूरी उच्च timescale उपयोग करने के लिए:

CMTime tm = CMTimeMake(53425, 10000); // @ 5.3425 sec 
+0

मैं पूर्णांक मान जरूरत नहीं है। यहां एक उदाहरण दिया गया है, मान लीजिए कि अवधि 10 सेकंड के साथ एक गीत है और मुझे 5.3425 सेकेंड पर एक और गीत मिला है। लेकिन चूंकि "एटटाइम" पैरामीटर केवल सीएमटाइम वैल्यू लेता है और यह इंटीजर होता है और जब मैं सीएमटाइममेक (5.3425, 1.0) का उपयोग कर रहा हूं; यह मुझे 5.00000 लौटा रहा है और गीत 5.00000 पर 5.3425 पर नहीं जोड़ा गया है। – Developer

+0

@ हर्ष आप फिर से कुछ समय के लिए समय-समय पर सेट क्यों नहीं कर सकते? उदाहरण के लिए, 5.3425 को 'सीएमटाइममेक (53425, 10000)' के रूप में प्रदर्शित किया जा सकता है ... –

+1

यह काम किया! :-) स्वीकार्य आप जवाब देते हैं! धन्यवाद लेकिन क्यों यह सीएमटाइममेक (5.3425, 1.0) के साथ काम नहीं कर रहा था ;? – Developer

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

  • कोई संबंधित समस्या नहीं^_^