Search Results for

    UnityOpus 🔉

    Note: A UPM fork of UnityOps by TyounanMOTI with some XML comments. The original project is sponsored by Cluster, Inc.

    📣 Concentus for Unity, a pure C# port of Opus without any native libraries is available HERE.

    Scripting reference

    Installation 📦

    Ensure you have the NPM registry in the packages.json file of your Unity project with com.adrenak.unityops as one of the scopes

    "scopedRegistries": [
        {
            "name": "npmjs",
            "url": "https://registry.npmjs.org",
            "scopes": [
                "com.npmjs",
                "com.adrenak.unityopus"
            ]
        }
    }
    

    Add "com.adrenak.unityopus" : "x.y.z" to dependencies list in packages.json file where x.y.z is the version name

    Tip

    The Encoder.Encode returns an int.
    If it's > 0, encoding succeeded and this int represents the length of the encoded audio in the output array. You'll need to copy the encoded audio from the output.
    If it's < 0, encoding has failed and the int actually represents the error code

    // Assuming pcm is the float[] you want to encode
    // The output array should be equal to the pcm array size in bytes, hence multuplied by 4
    byte[] output = new byte[pcm.Length * 4];
    int encodeResult = encoder.Encode(pcm, output); 
    if(encodedResult > 0) {
        byte[] encodedBytes = new byte[encodeResult];
        Array.Copy(encodeBuffer, encodedBytes, encodedBytes.Length);
        // encodedBytes now has the encoded audio ready for your use
    }
    else {
        // Get the error
        ErrorCode errorCode = (ErrorCode)encodeResult;
    }
    

    Contact 👥

    @github
    @website
    @discord: adrenak#1934

    • Improve this Doc
    In This Article
    Back to top UnityOpus documentation