Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

createEncoder 提示找不到实现函数 #1

Open
thearyong opened this issue Sep 30, 2020 · 0 comments
Open

createEncoder 提示找不到实现函数 #1

thearyong opened this issue Sep 30, 2020 · 0 comments

Comments

@thearyong
Copy link

thearyong commented Sep 30, 2020

创建编码器代码:

package com.thearyong.app;

import android.os.Bundle;
import android.util.Log;
import android.view.View;

import androidx.appcompat.app.AppCompatActivity;

import com.sogou.speech.encode.opus.OpusUtil;

import java.nio.ByteBuffer;
import java.nio.ByteOrder;

public class MainActivity extends AppCompatActivity {
    private final static String TAG = "MainActivity";
    private AudioCaptureThread audioCaptureThread;
    private OpusUtil opusUtil;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        audioCaptureThread = new AudioCaptureThread(16000, new IAudioConsumer() {
            @Override
            public void consume(byte[] data) {
                byte[] out = new byte[1024];
                int ret = opusUtil.encodeShortArray(bytesToShort(data), 0, out);
                Log.d(TAG, "consume() called with: ret=" + ret + ",data = " + data.length + ",out=" + out.length);
            }

            @Override
            public void onAmplitude(double amplitude, double volume) {

            }
        });

        opusUtil = new OpusUtil();
        opusUtil.createOpusEncoder(16000, 1, 8);
    }

    public void start(View view) {
        audioCaptureThread.start();
    }

    public void stop(View view) {
        audioCaptureThread.end();
    }

    public static short[] bytesToShort(byte[] bytes) {
        if (bytes == null) {
            return null;
        }
        short[] shorts = new short[bytes.length / 2];
        ByteBuffer.wrap(bytes).order(ByteOrder.LITTLE_ENDIAN).asShortBuffer().get(shorts);
        return shorts;
    }
}

运行之后提示:

2020-08-19 18:48:34.294 9310-9310/com.thearyong.app E/m.thearyong.ap: No implementation found for long com.sogou.speech.encode.opus.OpusUtil.createEncoder(int, int, int) (tried Java_com_sogou_speech_encode_opus_OpusUtil_createEncoder and Java_com_sogou_speech_encode_opus_OpusUtil_createEncoder__III)
2020-08-19 18:48:34.295 9310-9310/com.thearyong.app W/System.err: java.lang.UnsatisfiedLinkError: No implementation found for long com.sogou.speech.encode.opus.OpusUtil.createEncoder(int, int, int) (tried Java_com_sogou_speech_encode_opus_OpusUtil_createEncoder and Java_com_sogou_speech_encode_opus_OpusUtil_createEncoder__III)
2020-08-19 18:48:34.295 9310-9310/com.thearyong.app W/System.err: at com.sogou.speech.encode.opus.OpusUtil.createEncoder(Native Method)
2020-08-19 18:48:34.295 9310-9310/com.thearyong.app W/System.err: at com.sogou.speech.encode.opus.OpusUtil.createOpusEncoder(OpusUtil.java:33)
2020-08-19 18:48:34.295 9310-9310/com.thearyong.app W/System.err: at com.thearyong.app.MainActivity.onCreate(MainActivity.java:39)
2020-08-19 18:48:34.295 9310-9310/com.thearyong.app W/System.err: at android.app.Activity.performCreate(Activity.java:7171)
2020-08-19 18:48:34.296 9310-9310/com.thearyong.app W/System.err: at android.app.Activity.performCreate(Activity.java:7162)
2020-08-19 18:48:34.296 9310-9310/com.thearyong.app W/System.err: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
2020-08-19 18:48:34.296 9310-9310/com.thearyong.app W/System.err: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2931)
2020-08-19 18:48:34.296 9310-9310/com.thearyong.app W/System.err: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3086)
2020-08-19 18:48:34.296 9310-9310/com.thearyong.app W/System.err: at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
2020-08-19 18:48:34.296 9310-9310/com.thearyong.app W/System.err: at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
2020-08-19 18:48:34.296 9310-9310/com.thearyong.app W/System.err: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
2020-08-19 18:48:34.296 9310-9310/com.thearyong.app W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816)
2020-08-19 18:48:34.297 9310-9310/com.thearyong.app W/System.err: at android.os.Handler.dispatchMessage(Handler.java:106)
2020-08-19 18:48:34.297 9310-9310/com.thearyong.app W/System.err: at android.os.Looper.loop(Looper.java:193)
2020-08-19 18:48:34.297 9310-9310/com.thearyong.app W/System.err: at android.app.ActivityThread.main(ActivityThread.java:6720)
2020-08-19 18:48:34.297 9310-9310/com.thearyong.app W/System.err: at java.lang.reflect.Method.invoke(Native Method)
2020-08-19 18:48:34.297 9310-9310/com.thearyong.app W/System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
2020-08-19 18:48:34.297 9310-9310/com.thearyong.app W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant