gpt4 book ai didi

android - UnsatisfiedLinkError AudioRecordNew

转载 作者:行者123 更新时间:2023-11-30 04:12:37 29 4
gpt4 key购买 nike

尝试使用来自 here 的代码我试图合并这两个类,以便最终得到 ulaw 音频数据的 inputStream。所以我像这样编辑了 UlawEncoderInputStream:

private MicrophoneInputStream micIn;
public UlawEncoderInputStream() {
mMax = 0;
try {
micIn = new MicrophoneInputStream(8000, 1);

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

然后尝试使用该 UlawEncoderInputStream:

while(transmittingAudio) {
if(micInStream.available()>0) {
// byte[] data = new byte[audioDump.available()];
int bytesRead = micInStream.read(data);
os.write(data,0,bytesRead);
os.flush();
// ca.transmitAxisAudioPacket(data);
// System.out.println("read "+bytesRead);
}

不过MicrophoneInputStream 底部的JNI native 语句似乎有问题。

private static native int AudioRecordNew(int sampleRate, int fifoDepth);

错误:

05-14 14:46:48.544: W/dalvikvm(28658): No implementation found for native Lcom/avispl/nicu/audio/MicrophoneInputStream;.AudioRecordNew (II)I

05-14 14:46:48.552: W/dalvikvm(28658): threadid=10: thread exiting with uncaught exception (group=0x40018560)

05-14 14:46:48.552: E/AndroidRuntime(28658): FATAL EXCEPTION: Thread-12

05-14 14:46:48.552: E/AndroidRuntime(28658): java.lang.UnsatisfiedLinkError: AudioRecordNew

05-14 14:46:48.552: E/AndroidRuntime(28658): at com.avispl.nicu.audio.MicrophoneInputStream.AudioRecordNew(Native Method)

05-14 14:46:48.552: E/AndroidRuntime(28658): at com.avispl.nicu.audio.MicrophoneInputStream.(MicrophoneInputStream.java:27)

05-14 14:46:48.552: E/AndroidRuntime(28658): at com.avispl.nicu.audio.UlawEncoderInputStream.(UlawEncoderInputStream.java:111)

05-14 14:46:48.552: E/AndroidRuntime(28658): at com.avispl.nicu.audio.AudioTransmitter.run(AudioTransmitter.java:66)

最佳答案

对不起,如果这远远低于你提出的问题的水平,我很累,我发现你的问题很难理解:

如果您尝试调用 native 方法 AudioRecordNew

你需要做一个 static { System.loadLibrary("cLibraryName"); } 加载您使用 android-ndk\Android.mk\Application.mk

构建的 native 库

和您的 c++ 文件(和 h 文件)将需要这样的方法:

JNIEXPORT void JNICALL Java_com_company_package_JavaFile_AudioRecordNew(JNIEnv* env, jobject obj, jint arg0, jint arg1)     
{

}

除非您有一个执行上述所有操作的 native 库,否则您会收到一条错误消息,告诉您 native 库不存在。 (这看起来像你在这里遇到的问题,你没有示例中使用的 java native 库)。

如果您可以获得 native 库的源代码,但是您可以按照上述内容构建该库的 android 版本并继续。

关于android - UnsatisfiedLinkError AudioRecordNew,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10590611/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com