使用波形文件的指纹匹配


import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
import com.musicg.fingerprint.FingerprintSimilarity;
import com.musicg.wave.Wave;
import java.io.FileNotFoundException;
public class MainActivity extends AppCompatActivity {
FingerprintSimilarity fingerprintsimilarity;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Wave wave =new Wave("raw/test.wav");
Wave wave1=new Wave("raw/test.wav");
fingerprintsimilarity = wave.getFingerprintSimilarity(wave1);
float score = fingerprintsimilarity.getScore();
float similarity = fingerprintsimilarity.getSimilarity();
Log.d("HI", "Score : " + score + "n Similarity : " + similarity);
}
}

实现 musicg 以进行指纹匹配,出现以下错误:

06-12

12:06:41.921 20132-20132/?I/art: Late-enable -Xcheck:jni 06-12 12:06:42.023 20132-20132/?W/系统:类加载器引用的未知路径:/data/app/com.example.dhrum.fingerprintmatching-2/lib/arm64 06-12 12:06:42.037 20132-20132/?I/即时运行:启动即时运行服务器:是主进程 06-12 12:06:42.098 20132-20132/?w/art:在Android 4.1之前,方法android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) 会错误地覆盖 中的包私有方法 android.graphics.drawable.Drawable 06-12 12:06:42.191 20132-20132/?W/System.err: java.io.FileNotFoundException: raw/test.wav (没有这样的文件或 目录) 06-12 12:06:42.192 20132-20132/?W/System.err: at java.io.FileInputStream.open(Native Method) 06-12 12:06:42.192 20132-20132/?W/System.err: at java.io.FileInputStream.(文件输入流.java:146) 06-12 12:06:42.192 20132-20132/?W/System.err: at java.io.FileInputStream.(文件输入流.java:99) 06-12 12:06:42.192 20132-20132/?W/System.err: at com.musicg.wave.Wave.(波.java:60) 06-12 12:06:42.192 20132-20132/?W/System.err: at com.example.dhrum.fingerprintmatching.MainActivity.onCreate(MainActivity.java:20) 06-12 12:06:42.192 20132-20132/?W/System.err: at android.app.Activity.performCreate(Activity.java:6760) 06-12 12:06:42.192 20132-20132/?W/System.err: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1134) 06-12 12:06:42.192 20132-20132/?W/System.err: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2681) 06-12 12:06:42.192 20132-20132/?W/System.err: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2814) 06-12 12:06:42.192 20132-20132/?W/System.err: at android.app.ActivityThread.-wrap12(ActivityThread.java) 06-12 12:06:42.192 20132-20132/?W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1527) 06-12 12:06:42.192 20132-20132/?W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102) 06-12 12:06:42.192 20132-20132/?W/System.err: at android.os.Looper.loop(Looper.java:154) 06-12 12:06:42.192 20132-20132/?W/System.err: at android.app.ActivityThread.main(ActivityThread.java:6290) 06-12 12:06:42.192 20132-20132/?W/System.err: at java.lang.reflect.Method.invoke(Native Method) 06-12 12:06:42.192 20132-20132/?W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 06-12 12:06:42.192 20132-20132/?W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 06-12 12:06:42.192 20132-20132/?W/System.err: java.io.FileNotFoundException: raw/test.wav (没有这样的文件或 目录) 06-12 12:06:42.192 20132-20132/?W/System.err: at java.io.FileInputStream.open(Native Method) 06-12 12:06:42.192 20132-20132/?W/System.err: at java.io.FileInputStream.(文件输入流.java:146) 06-12 12:06:42.192 20132-20132/?W/System.err: at java.io.FileInputStream.(文件输入流.java:99) 06-12 12:06:42.192 20132-20132/?W/System.err: at com.musicg.wave.Wave.(波.java:60) 06-12 12:06:42.192 20132-20132/?W/System.err: at com.example.dhrum.fingerprintmatching.MainActivity.onCreate(MainActivity.java:21) 06-12 12:06:42.192 20132-20132/?W/System.err: at android.app.Activity.performCreate(Activity.java:6760) 06-12 12:06:42.192 20132-20132/?W/System.err: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1134) 06-12 12:06:42.192 20132-20132/?W/System.err: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2681) 06-12 12:06:42.192 20132-20132/?W/System.err: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2814) 06-12 12:06:42.192 20132-20132/?W/System.err: at android.app.ActivityThread.-wrap12(ActivityThread.java) 06-12 12:06:42.192 20132-20132/?W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1527) 06-12 12:06:42.192 20132-20132/?W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102) 06-12 12:06:42.192 20132-20132/?W/System.err: at android.os.Looper.loop(Looper.java:154) 06-12 12:06:42.192 20132-20132/?W/System.err: at android.app.ActivityThread.main(ActivityThread.java:6290) 06-12 12:06:42.192 20132-20132/?W/System.err: at java.lang.reflect.Method.invoke(Native Method) 06-12 12:06:42.193 20132-20132/?W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 06-12 12:06:42.193 20132-20132/?W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)06-12 12:06:42.195 20132-20132/?D/AndroidRuntime:关闭虚拟机 06-12 12:06:42.195 20132-20132/?E/Android运行时:致命异常:main 进程:com.example.dhrum.fingerprintmatching,PID:20132 java.lang.RuntimeException: 无法启动活动 ComponentInfo{com.example.dhrum.fingerprintmatching/com.example.dhrum.fingerprintmatching.MainActivity}: java.lang.NullPointerException: Try to invoke virtual method 'int com.musicg.wave.WaveHeader.getSampleRate()' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2728) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2814) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1527) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6290) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 原因:java.lang.NullPointerException:尝试调用虚拟方法 'int com.musicg.wave.WaveHeader.getSampleRate()' on a null object reference at com.musicg.fingerprint.FingerprintManager.extractFingerprint(FingerprintManager.java:69) at com.musicg.wave.Wave.getFingerprint(Wave.java:329) at com.musicg.wave.Wave.getFingerprintSimilarity(Wave.java:335) at com.example.dhrum.fingerprintmatching.MainActivity.onCreate(MainActivity.java:22) at android.app.Activity.performCreate(Activity.java:6760) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1134) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2681) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2814) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1527) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6290) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 06-12 12:06:42.196 20132-20132/?D/应用跟踪器:应用事件:崩溃 06-12 12:06:42.216 20132-20132/?I/进程:发送信号。PID: 20132 SIG: 9

我正在使用单声道 wav 文件,文件位于应用程序文件夹内名为 raw 的文件夹中。

你的错误是java.io.FileNotFoundException: raw/test.wav (No such file or directory).

试试这个:-

Wave wave =new Wave("R.raw.test"); // not ("raw/test.wav");
Wave wave1=new Wnave("R.raw.test");

由于"test.wav"是Android资源中的文件,因此您必须以这种方式访问它。

最新更新