2017-11-20 5 views
5

物理デバイスでAudioKitのAKMicrophoneTrackerを使用する場合、周波数と振幅は常に両方とも0です。しかし、遊び場やiOSシミュレータでは、完全に動作します。AudioKitのAKMicrophoneTrackerが物理的なiOSデバイスで動作しないのはなぜですか?

はここでラフな例です:

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で読み取るにはどうすればよいですか?

私はAudioKit 4.0.3を使用しています。

  • を私のMac
  • シミュレータiPhone 7プラス使用している場合、それが動作しないiOSの11.1

を実行している上AudioKitの遊び場::

  • Aを期待通りに使用したときに動作しますiOS 11.1.1を実行する物理的なiPhone 7 Plus(また、iOS 11.1でも発生する)

私はもともとa bug on AudioKit's GitHub issue trackerとして掲示しました。しかし、Aure(プロジェクトのメンテナー)は私がここに投稿するよう奨励しました。

+0

なぜ0.1秒で追跡しようとしましたか?私はあなたが1または2最小二分の一希望をあなたに役立つだろうと思う –

+0

iOS 11または10を持っている他のデバイスでチェックした –

+0

@Tubelightサンプル間のより長い時間は、より良い結果を与えるかもしれないが、正確でない場合でも、私に_some_データを与えてください。しかし、私はちょうどゼロを得ています。 –

答えて

0

Ercell0's answerが正しい - 彼のコードは完全に機能します。私の特定の問題は、テスト中に無効にしたと思った他のAudioKitの機能によって引き起こされたようです。これは、AKMicrophoneTrackerの初期化後に、実行:

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

の実行に相当します。これは私が経験していた問題AKMicrophoneTrackerを引き起こしました。

はAudioKitのバグである可能性があります。私はGithubで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

あなたはまったく正しい - 私の問題は、私が誤って無効にしなかったいくつかの他のコードによって引き起こされたことが判明しました。私はあなたの答えをupvotedし、あなたに賞金を授与しましたが、私はそれが問題に実際の関連情報が含まれていると思う正しい私の答えを以下にマークしました。 –

関連する問題