2015-09-10 7 views
10

प्राप्त करने के बाद मैं यह पता लगाने की क्यों playSoundFileNamed लगातार दो फोन कॉल प्राप्त करने के बाद काम नहीं करता है कोशिश कर रहा हूँ काम नहीं करता। दरअसल यह पहली फोन कॉल प्राप्त होने के बाद ही काम करता है। प्रजनन चरण हैं:SKAction playSoundFileNamed लगातार दो फोन कॉल

  1. एक फोन कॉल के लिए एक खेल
  2. प्रतीक्षा शुरू और अग्रभाग में
रिटर्निंग पृष्ठभूमि
  • फोन कॉल समाप्त हो गया है (मना कर दिया या फोन करने वाले से बाधित)
  • करने के लिए जाना

    इसके बाद, स्पर्श से ध्वनि बजाना बीगन अभी भी काम करता है।

    जब मैं उपर्युक्त चरणों को दोहराता हूं (पहला कदम छोड़ दिया जाता है), स्पर्श से तंत्रबीगन काम करना बंद कर देता है। सुनिश्चित नहीं हैं कि क्यों हो रहा है ... यहाँ कोड है जो वर्णित व्यवहार का उत्पादन कर सकते है:

    @interface GameScene() 
    
    @property (nonatomic, strong) SKAction *sound; 
    @end 
    
    @implementation GameScene 
    
    -(void)didMoveToView:(SKView *)view { 
        self.sound = [SKAction playSoundFileNamed:@"sound1.wav" waitForCompletion:NO]; 
    } 
    
    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
        /* Called when a touch begins */ 
        [self runAction:self.sound]; 
    } 
    @end 
    

    मैं जानता हूँ कि वहाँ कुछ इतने पर इस से संबंधित सवाल कर रहे हैं, लेकिन दिए गए उत्तर समाधान से संबंधित हैं। मुझे कामकाज में रूचि नहीं है, बल्कि यह क्यों हो रहा है? क्या यह किसी भी तरह AVAudioSession से संबंधित है? (शायद नहीं) मुझे पता है कि मैं AVAudioPlayer को वर्कअराउंड के रूप में उपयोग कर सकता हूं, लेकिन फिर भी यह सुनिश्चित नहीं है कि बहुत सरल लघु ध्वनियों के लिए प्रदर्शन करने वाला कितना है ...

  • +1

    मैं कुछ समय पहले इस से निपट रहा था। मुझे कभी समाधान नहीं मिला। मेरे लिए यह केवल एक फोन कॉल लेगा। लेकिन एक बुरी स्थिति थी कि आप भी जांचना चाहेंगे। मैं आईएडी का उपयोग कर रहा था और हर बार एक विज्ञापन जिसमें ध्वनि था (जैसे कि युद्ध विज्ञापनों के उन खेलों की तरह) प्रस्तुत किया गया था, यह भी खेलना बंद कर देगा साउंडफाइल नाम: ऐप को फिर से लॉन्च होने तक काम करने से। केवल एक चीज जो मैं कर सकता था वह मेरे खेल से विज्ञापन हटा था। अगर ऑडियो के साथ विज्ञापन प्राप्त हुआ तो मैं सभी गेम ध्वनि प्रभावों को विफल करने के उपयोगकर्ता अनुभव को जोखिम नहीं उठा सका। और मुझे उम्मीद थी कि उपयोगकर्ताओं को कॉल न मिले। – Brad

    उत्तर

    2

    SKAction playSoundFileNamed ऐप संक्रमण के संबंध में छोटी है पृष्ठभूमि और अग्रभूमि। यही कारण है कि आपको यह समस्या क्यों है। मुझे यकीन नहीं है कि आईओएस 9 में इस समस्या को सही किया गया है या नहीं।

    कामकाज के लिए, आपने कहा कि आप रुचि नहीं रखते हैं लेकिन मैं पूरा होने के लिए एक शामिल करूंगा। SKAction के बजाय AVAudioPlayer का उपयोग करें। एवीएपी में आपके ऐप के राज्य के आधार पर रोकने और शुरू करने (अपने प्रतिनिधियों का उपयोग करने) की क्षमता है।

    +1

    हाँ, playSoundFileNamed काम करता है और शायद बोलने के पल में हम इसे बदलने के लिए कुछ भी नहीं कर सकते हैं। मुझे लगता है कि मैं इसके बारे में एक रडार भर सकता हूं। – Whirlwind

    +0

    बस आईओएस 9 पर भी इसका परीक्षण किया। यह काम नहीं कर रहा है। – Whirlwind

    0

    यह मिश्रित ऑडियो के साथ एक मुद्दा हो सकता है। मैंने पाया है कि मिश्रित ऑडियो सक्षम करने से अब स्प्राइटकिट के ऑडियो इंजन को रुकावट, विज्ञापन वीडियो गेम या ऐप पृष्ठभूमि के दौरान रोक दिया जाता है।

    try? AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient) 
    
    संबंधित मुद्दे