小编Waw*_*a08的帖子

Portaudio + Opus编码/解码音频输入

我正在使用Portaudio和opus在VOIP客户端上工作.我从一个帧中读取麦克风 - 使用Opus对每个帧进行编码并将其放入列表--pop列表中的第一个元素并对其进行解码 - 使用portaudio读取它

如果我在没有编码声音的情况下做同样的事情,那么效果很好.但是当我使用Opus时我的声音很糟糕,我无法理解声音(这对于voip客户端来说是不好的)

HandlerOpus::HandlerOpus(int sample_rate, int num_channels)
    {
        this->num_channels = num_channels;
        this->enc = opus_encoder_create(sample_rate, num_channels, OPUS_APPLICATION_VOIP, &this->error);
        this->dec = opus_decoder_create(sample_rate, num_channels, &this->error);

        opus_int32 rate;

        opus_encoder_ctl(enc, OPUS_GET_BANDWIDTH(&rate));
        this->encoded_data_size = rate;
    }

    HandlerOpus::~HandlerOpus(void)
    {
        opus_encoder_destroy(this->enc);
        opus_decoder_destroy(this->dec);
    }

    unsigned char *HandlerOpus::encodeFrame(const float *frame, int frame_size)
    {
        unsigned char *compressed_buffer;
        int ret;

        compressed_buffer = new (unsigned char[this->encoded_data_size]);
        ret = opus_encode_float(this->enc, frame, frame_size, compressed_buffer, this->encoded_data_size);
        return (compressed_buffer);
    }

    float *HandlerOpus::decodeFrame(const unsigned char *data, int frame_size)
    {
        int ret;
        float *frame = new …
Run Code Online (Sandbox Code Playgroud)

c++ audio voip portaudio opus

5
推荐指数
1
解决办法
4539
查看次数

Android DrawArc SweepGradient超过360°

我正在尝试制作一个颜色轮,允许用户在纯色或渐变之间进行选择.用户还可以在车轮周围移动这些颜色.

问题在于渐变.当角度超过360°时,显示的颜色将返回到第一种颜色,而不是继续渐变.

我正在使用自定义视图,我将粘贴的代码从onDraw方法调用.

int start = Color.rgb((int)previous.startRed, (int)previous.startGreen, (int)previous.startBlue);
int end = Color.rgb((int)previous.endRed, (int)previous.endGreen, (int)previous.endBlue);
int[] colors = {start, end, end};
float from = from_angle / 360.0f;
float to = (from_angle + to_angle) / 360.0f;
float[] positions = {from,to, to};
Log.v("Print", "print positions " + positions[0] + " " + positions[1]);
Shader gradient = new SweepGradient (oval.centerX(), oval.centerY(),colors, positions);
paint.setShader(gradient);
canvas.drawArc(oval, from_angle, to_angle + 1, false, paint);
Run Code Online (Sandbox Code Playgroud)

这是一张显示我面临的问题的图片.在此输入图像描述

任何提示都将不胜感激.谢谢.

android android-custom-view

5
推荐指数
0
解决办法
1601
查看次数

标签 统计

android ×1

android-custom-view ×1

audio ×1

c++ ×1

opus ×1

portaudio ×1

voip ×1