Запись и воспроизведение с помощью Opus Codec в Android

Я работаю над проектом, который должен записывать и воспроизводить с помощью Opus Codec, я много искал, но я не могу найти ни одного примера / примера, использующего это решение. Я нахожу демонстрацию с кодировщиком, но не могу найти декодер. Я только нахожу исходный код этого кодека с помощью C, вы можете мне помочь?

    Привет, что демонстрация – хорошее место для начала, он был очень близко к ее решению. Однако каждый пакет должен быть отправлен отдельно от кодировщика в декодер. Вместо того, чтобы сохранять все в файл, а затем читать их без какого-либо отношения к запуску пакета.
    Я изменил код, чтобы также записать количество закодированных байтов, и когда я декодирую, я сначала считываю количество байтов в каждом пакете, а затем полезную нагрузку.

    Вот модифицированный код в OpusEncoder.java

    public void write( short[] buffer ) throws IOException { byte[] encodedBuffer = new byte[buffer.length]; int lenEncodedBytes = this.nativeEncodeBytes( buffer , encodedBuffer); Log.i(TAG,"encoded "+lenEncodedBytes+" bytes"); if (lenEncodedBytes > 0) { this.out.write(lenEncodedBytes); this.out.write( encodedBuffer, 0, lenEncodedBytes ); } else { Log.e( TAG, "Error during Encoding. Error Code: " + lenEncodedBytes); throw new IOException( "Error during Encoding. Error Code: " + lenEncodedBytes ); } } 

    Вот модифицированный код в OpusDecoder.java

      byte[] encodedBuffer; int bytesEncoded=this.in.read(); int bytesDecoded=0; Log.d( TAG, bytesEncoded + " bytes read from input stream" ); if ( bytesEncoded >= 0 ) { encodedBuffer=new byte[bytesEncoded]; int bytesRead = this.in.read( encodedBuffer ); bytesDecoded = nativeDecodeBytes( encodedBuffer , buffer); Log.d( TAG, bytesEncoded + " bytes decoded" ); } 

    Попробуйте эту демонстрационную версию GitHub . Я скомпилировал его, но он не воспроизводит записанный звук.