Tarsos DSP를 사용하여 마이크에서 입력되는 사운드의 주파수를 결정합니다. 대부분의 장치에서 완벽하게 작동하지만 일부는 오류가 발생합니다.dispatcher.addAudioProcessor (p)의 Tarsos DSP를 사용하여 NullPointer 예외를 가져 오는 중입니다.
오류 :
java.lang.RuntimeException:
at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2695)
at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2769)
at android.app.ActivityThread.access$900 (ActivityThread.java:177)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1430)
at android.os.Handler.dispatchMessage (Handler.java:102)
at android.os.Looper.loop (Looper.java:135)
at android.app.ActivityThread.main (ActivityThread.java:5910)
at java.lang.reflect.Method.invoke (Native Method)
at java.lang.reflect.Method.invoke (Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1405)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1200)
Caused by: java.lang.NullPointerException:
at com.example.denissobolevsky.mmm.MainActivity.onCreate (MainActivity.java:1546)
at android.app.Activity.performCreate (Activity.java:6178)
at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2648)
코드 (라인 1545에서 1547 사이) :
AudioProcessor p = new PitchProcessor(PitchProcessor.PitchEstimationAlgorithm.FFT_YIN, 22050, 1024, pdh);
dispatcher.addAudioProcessor(p);
new Thread(dispatcher, "Audio Dispatcher").start();
그리고 디스패처는 다음과 같습니다
AudioDispatcher dispatcher = AudioDispatcherFactory.fromDefaultMicrophone(22050, 1024, 0);
'dispatcher'는 단순히 null입니다. 1546 줄 앞에 널 검사를 추가하십시오. if (dispatcher! = null) {dispatcher.addAudioProcessor (p); 새 스레드 (Dispatcher, "Audio Dispatcher"). start();} –
감사합니다. 오류가 발생했습니다. 하지만 디스패처가 null로 정의 된 이유를 알고 계십니까? –
제 대답을 참조하십시오. 감사. –