Skip to content

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

@thearyong

Description

@thearyong

创建编码器代码:

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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions