2009-07-21 9 views
12

से खेलना शुरू कर रहा है मुझे AVAudioPlayer का उपयोग करने में कोई समस्या है, जहां मैं वर्तमान में खेल रहा हूं और इसे फिर से खेलना चाहता हूं।AVAudioPlayer वर्तमान में ध्वनि बजाना और इसे

मैं कोई भाग्य के साथ निम्न प्रयास करें:

ध्वनि एक बार खेलता है लेकिन फिर दूसरी बार मैं बटन यह ध्वनि बंद हो जाता है का चयन करें, तीसरी बार ध्वनि फिर से शुरू होता है।

//Stop the player and restart it 
if (player.playing) { 
    NSLog(@"Reset sound: %@", selectedSound); 
    [player stop]; 
    [player play]; 
} else { 
    NSLog(@"playSound: %@", selectedSound); 
    [player play];  
} 

मैं भी player.currentTime = 0 जो इंगित करता है कि खिलाड़ी, बात नहीं बनी रीसेट हो जाएंगे उपयोग करने की कोशिश की है, मैं भी रीसेट करने मौजूदा समय = 0 और फिर बुला बात नहीं बनी खेलने की कोशिश की।

//Stop the player and restart it 
if (player.playing) { 
    NSLog(@"Reset sound: %@", selectedSound); 
    player.currentTime = 0; 
    [player play]; 
} else { 
    NSLog(@"playSound: %@", selectedSound); 
    [player play];  
} 

उत्तर

33

अपनी स्थिति के लिए मैं रोक के बजाय ठहराव

//Pause the player and restart it 
if (player.playing) { 
    NSLog(@"Reset sound: %@", selectedSound); 
    [player pause]; 
} 

player.currentTime = 0; 
[player play]; 

निम्नलिखित आप तुरंत ध्वनि फिर से खेलने के लिए जा रहे हैं, मेरा सुझाव है की कोशिश करेंगे। कॉलिंग स्टॉप "प्लेबैक रोकता है और प्लेबैक के लिए आवश्यक सेटअप को पूर्ववत करता है।"

+6

Fwiw, मैंने देखा है कि सिर्फ शून्य करने के लिए मौजूदा समय की स्थापना के लिए पर्याप्त है। यहां वर्णित विधि के साथ, मैं तुरंत उत्तराधिकार में कुछ बार ऐसा करने के बाद ऑडियो को खेलने से इंकार कर रहा हूं। – Plumenator

0

स्विफ्ट उदाहरण:

player.currentTime = 0.0; 
संबंधित मुद्दे