2017-11-20 21 views
5

जब मैं भौतिक डिवाइस पर ऑडियोकिट के AKMicrophoneTracker का उपयोग करता हूं, आवृत्ति और आयाम हमेशा 0 दोनों होते हैं। लेकिन खेल के मैदान और आईओएस सिम्युलेटर में, यह पूरी तरह से काम करता है।ऑडियोकिट का AKMicrophoneTracker भौतिक आईओएस डिवाइस पर क्यों काम नहीं करता है?

यहाँ एक किसी न किसी उदाहरण है:

class AppDelegate: UIResponder, UIApplicationDelegate { 

    let tracker = AKMicrophoneTracker() 

    func application(_ application: UIApplication, 
     didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 

     // start the tracker and show frequency information 
     tracker.start() 
     Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true, block: { _ in 
      print(tracker.frequency) 
      print(tracker.amplitude) 
     }) 
    } 

} 

मैं अपने भौतिक डिवाइस की गोपनीयता अनुमतियों को रीसेट कर दिया है, और iOS सही ढंग से मुझे माइक्रोफोन उपयोग की अनुमति उत्साह है। यह अभी भी काम नहीं करता है भले ही मैं माइक्रोफोन एक्सेस की अनुमति दे रहा हूं।

मैं इन मानों को वास्तव में पढ़ने के लिए AKMicrophoneTracker कैसे प्राप्त कर सकता हूं?

मैं ऑडियोकिट 4.0.3 का उपयोग कर रहा हूं। यह उम्मीद काम करता है के रूप में उपयोग करते समय:

  • मेरे Mac
  • एक सिम्युलेटर iPhone 7 प्लस आईओएस 11.1 चलाने पर AudioKit खेल का मैदान

यह का उपयोग करते समय काम नहीं करता:

  • एक भौतिक आईफोन 7 प्लस आईओएस 11.1.1 चला रहा है (और आईओएस 11.1 पर भी होता है)

मूल रूप से इसे a bug on AudioKit's GitHub issue tracker के रूप में पोस्ट किया गया। हालांकि, Aure (प्रोजेक्ट रखरखाव) ने मुझे इसके बजाय यहां पोस्ट करने के लिए प्रोत्साहित किया।

+0

आपने 0.1 सेकंड पर ट्रैक करने का प्रयास क्यों किया है। मुझे लगता है कि आपको 1 या 2 न्यूनतम दूसरी आशा का उपयोग करना चाहिए –

+0

क्या आपने किसी अन्य डिवाइस में चेक किया है जिसमें आईओएस 11 या 10 –

+0

@ नमूना के बीच ट्यूबलाइट लंबा समय बेहतर परिणाम दे सकता है, लेकिन एक समय तक 0.1 सेकंड मुझे _some_ डेटा दें, भले ही यह सटीक न हो। लेकिन मुझे बस शून्य मिल रहा है। –

उत्तर

0

Ercell0's answer सही है - उसका कोड पूरी तरह से काम करता है। मेरी विशिष्ट समस्या कुछ अन्य ऑडियोकिट कार्यक्षमता के कारण हुई है, जिसे मैंने सोचा था कि मैंने परीक्षण के दौरान अक्षम कर दिया था। यह चलने के बराबर था:

AudioKit.output = AKMixer() 
AudioKit.start() 

AKMicrophoneTracker प्रारंभिकरण के बाद। इससे AKMicrophoneTracker समस्या का सामना करना पड़ रहा था।

ऐसा लगता है कि यह ऑडियोकिट में एक बग हो सकता है। मैंने गीथूब पर issue #1142 खोला है।

6

7+ पर मेरे लिए काम किया के बाद, 6s:

AppDelegate में:

import UIKit 
import AudioKit 

@UIApplicationMain 
class AppDelegate: UIResponder, UIApplicationDelegate { 

var window: UIWindow? 
let tracker = AKMicrophoneTracker() 



func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
    // Override point for customization after application launch. 

    // start the tracker and show frequency information 
    tracker.start() 
    Timer.scheduledTimer(withTimeInterval: 0.5, repeats: true, block: { _ in 
     print(self.tracker.frequency) 
     print(self.tracker.amplitude) 
    }) 


    return true 
} 
... 

Info.plist

... 
<key>NSMicrophoneUsageDescription</key> 
<string>WE need your microfone to contact the aliens</string> 
... 

enter image description here

+0

एलियंस को शामिल करने के लिए उपरोक्त। – matt

+0

आप पूरी तरह से सही हैं - मेरी समस्या किसी अन्य कोड के कारण हुई है जिसे मैंने गलती से अक्षम नहीं किया था। मैंने आपके उत्तर को उखाड़ फेंक दिया है और आपको बक्षीस दिया है, लेकिन मैंने नीचे अपना उत्तर सही के रूप में चिह्नित किया है क्योंकि मुझे लगता है कि इसमें समस्या के लिए वास्तविक प्रासंगिक जानकारी है। –

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