GithubHelp home page GithubHelp logo

jay-goo / wavelineview Goto Github PK

View Code? Open in Web Editor NEW
686.0 12.0 107.0 1.93 MB

A memory-friendly recording wave animation一款性能内存友好的录音波浪动画

License: Apache License 2.0

Java 100.00%
android wave line animation recorder

wavelineview's Introduction

WaveLineView

一款内存友好的录音漂亮的波浪动画

效果图(实际效果更好)

image


Usage

Step1

 allprojects {
		repositories {
			...
			maven { url 'https://jitpack.io' }
		}
	}
	
	dependencies {
	        compile 'com.github.Jay-Goo:WaveLineView:v1.0.4'
	}

Step2

<jaygoo.widget.wlv.WaveLineView
        android:id="@+id/waveLineView"
        android:layout_width="match_parent"
        android:layout_height="120dp"
        app:wlvBackgroundColor="@android:color/white"
        app:wlvMoveSpeed="290"
        />

Step3

waveLineView.startAnim();

waveLineView.stopAnim();
  @Override
    protected void onResume() {
        super.onResume();
        waveLineView.onResume();
    }

    @Override
    protected void onPause() {
        super.onPause();
        waveLineView.onPause();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        waveLineView.release();
    }

Attributes

attr format description
backgroundColor color 背景色
wlvLineColor color 波浪线的颜色
wlvThickLineWidth dimension 中间粗波浪曲线的宽度
wlvFineLineWidth dimension 三条细波浪曲线的宽度
wlvMoveSpeed float 波浪线移动的速度,默认值为290F,方向从左向右,你可以使用负数改变移动方向
wlvSamplingSize integer 采样率,动画效果越大越精细,默认64
wlvSensibility integer 灵敏度,范围[1,10],越大越灵敏,默认值为5

联系我

  • Email: [email protected]
  • QQ Group: 573830030 有时候工作很忙没空看邮件和Issue,大家可以通过QQ群联系我

一杯咖啡

大家都知道开源是件很辛苦的事情,这个项目也是我工作之余完成的,平时工作很忙,但大家提的需求基本上我都尽量满足,如果这个项目帮助你节省了大量时间,你很喜欢,你可以给我一杯咖啡的鼓励,不在于钱多钱少,关键是你的这份鼓励所带给我的力量~

致谢

Bugly—以Tencent OS录音机波形动画为实例

DrkCore—以Tencent OS录音机波形为例

wavelineview's People

Contributors

jinjiegu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wavelineview's Issues

页面波纹重叠bug

demo里面startAnim 显示波纹移动后,一切正常,此时进行频繁地前后台切换,多操作几次就发现页面波纹重叠bug。 必现。

背景黑色

waveView会遮挡其他控件,设置了setZOrderMediaOverlay(false);可以解决遮挡,但是背景变成黑色,请问有更好的解决方案解决这个冲突吗?
image

?

不劳而获真的那么安心么

给背景颜色backGroundColor 设置透明度

博主,你好。我在使用您的这个控件,发下了这个问题。如果给空间设置带有透明度颜色。那么波浪线会有问题。比如我的颜色是 #2100000 这时,控件有问题。改如何解决呢

背景透明问题

1.默认背景为白色
2.背景颜色设置为透明,背景变成黑色
3.线条出现bug变成一条粗线

录入语音后波动过小

录入语音后波动太小该如何处理,sensibility已设置为10,setVolume的值为百度asr识别到的volume

背景问题

<jaygoo.widget.wlv.WaveLineView
android:id="@+id/waveLineView"
android:layout_width="match_parent"
android:layout_height="120dp"
app:wlvBackgroundColor="#FF4081" />
设置成其他背景
停止动画就会出现问题 波浪不显示

暂时解决NullPointerException WaveLineView.java:*空指针错误

相信很多使用该开源库的都是只先调用一次
mWaveLineView.startAnim()
之后Handler中循环调用
mWaveLineView.setVolume(mRecorder.volumeDb);
这样导致空指针错误!(暂时没有调查原因)

解决方案:

在Handler中不仅需要循环调用
mWaveLineView.setVolume(mRecorder.volumeDb);
还需要调用上面代码之前调用
mWaveLineView.startAnim()

完整示例(Kotlin):

var mHandler: Handler? =null;
var mRunnable: Runnable?  =null;

mHandler = Handler();

mRunnable = object: Runnable {
            override fun run() {
                //需要运行在UiThread否则可能还会出现空指针问题(未知)
                ViewUtils.runOnUiThread(Runnable {
                    //必须setVolume方法之前调用startAnim
                    mWaveLineView.startAnim();
                    mWaveLineView.setVolume(mRecorder!!.volumeDb);
                });
                mHandler!!.postDelayed(this, 500);
            }
        };
        mHandler!!.postDelayed(mRunnable, 500);//每500毫秒执行一次,看你业务刷新需求

这样开始就没有空指针问题了
(但是测试过程中超过一定时间有概率空指针,问题有待探究)

                                                                                                                         FloatFutrue-7Puchi

无法显示的解决办法

`private void startThread() {
if (renderThread != null && !renderThread.running) {
renderThread.setRun(true);
try {
if (renderThread.getState() == Thread.State.NEW) {
renderThread.start();
}
} catch (RuntimeException e) {
e.printStackTrace();
}
} else {
renderThread = new RenderThread(this);
renderThread.setRun(true);
renderThread.start();
}
}

@OverRide
public void surfaceCreated(SurfaceHolder holder) {
renderer = onCreateRenderer();
LogUtil.e("RenderView surfaceCreated renderer:" + renderer);
if (renderer != null && renderer.isEmpty()) {
throw new IllegalStateException();
}
if (renderThread != null)
renderThread = new RenderThread(this);
}
`

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.