मेरे पास एक ऐसा प्रोग्राम है जो ऑडियो प्लेयर को चलाने, रोकने और रोकने के लिए फ़ाइल प्लेयर ऑडियो यूनिट का उपयोग करता है। जिस तरह से मैं इसे पूरा कर रहा हूं, फ़ाइल प्लेयर ऑडियो इकाई को स्थिति शून्य पर फ़ाइल चलाने के लिए प्रारंभ करना है और फिर जब उपयोगकर्ता रोकें बटन दबाता है, तो मैं ऑग्राफ को रोकता हूं, वर्तमान स्थिति को कैप्चर करता हूं, और फिर उस स्थिति को प्रारंभ स्थिति के रूप में उपयोग करता हूं जब उपयोगकर्ता play बटन दबाता है। सबकुछ काम कर रहा है जैसा कि करना चाहिए, लेकिन हर 3 या 4 बार मैंने रोक दिया और फिर खेलते हैं, गीत उस बिंदु से पहले एक पूर्ण सेकेंड में आधा खेलना शुरू कर देता है, जहां मैंने रोक दिया था।आईओएस कोर ऑडियो में, आप फ़ाइल प्लेयर ऑडियो यूनिट की वास्तविक वर्तमान प्ले हेड स्थिति कैसे प्राप्त करते हैं?
मुझे पता नहीं चल रहा है कि यह क्यों हो रहा है, क्या आप में से कोई भी विचार है? यहां मेरे कोड का सरलीकृत संस्करण है।
//initialize AUGraph and File player Audio unit
...
...
...
//Start AUGraph
...
...
...
// pause playback
- (void) pauseAUGraph {
//first stop the AuGrpah
result = AUGraphStop (processingGraph);
// get current play head position
AudioTimeStamp ts;
UInt32 size = sizeof(ts);
result = AudioUnitGetProperty(filePlayerUnit,
kAudioUnitProperty_CurrentPlayTime, kAudioUnitScope_Global, 0, &ts,
&size);
//save our play head position for use later
//must add it to itself to take care of multiple presses of the pause button
sampleFrameSavedPosition = sampleFrameSavedPosition + ts.mSampleTime;
//this stops the file player unit from playing
AudioUnitReset(filePlayerUnit, kAudioUnitScope_Global, 0);
NSLog (@"AudioUnitReset - stopped file player from playing");
//all done
}
// Stop playback
- (void) stopAUGraph {
// lets set the play head to zero, so that when we restart, we restart at the beginning of the file.
sampleFrameSavedPosition = 0;
//ok now that we saved the current pleayhead position, lets stop the AUGraph
result = AUGraphStop (processingGraph);
}
ऑडियो फ़ाइल कौन सा प्रारूप है? –
वे एम 4 ए फाइलें हैं। – Beleg
ठीक है, मैं ऑडियो संपीड़न में एक विशेषज्ञ नहीं हूं, लेकिन फ़ाइलों को खंडों में संपीड़ित किया जाता है और जब आप इसे खोजते हैं तो वास्तविक स्थिति की बजाय निकटतम खंड में जा सकते हैं। अगर मैं कुछ और निश्चित हो जाता हूं तो मैं एक उत्तर पोस्ट करूंगा। –