diff --git a/README.OPENRESOURCE.md b/README.OPENRESOURCE.md
index 7da1d3126d1a0e21e4eda383200e88d29646aa26..ca54369e44f1932ba498cb94067c4267fcc89512 100644
--- a/README.OPENRESOURCE.md
+++ b/README.OPENRESOURCE.md
@@ -2,11 +2,11 @@
```txt
{
- "Name": "AudioVisualizerOhos",
+ "Name": "audio-visualizer-ohos",
"License": "Apache License",
"License File": "LICENSE",
"Version Number": "0.9.1",
- "Upstream URL": "[](https://github.com/gauravk95/audio-visualizer-android)",
+ "Upstream URL": "https://github.com/gauravk95/audio-visualizer-android",
"Description": "A light-weight and easy-to-use Audio Visualizer for Android using the Android Canvas."
}
```
diff --git a/README.md b/README.md
index d5e595f5de0e8a26acca937dddcc6d88cf153f2f..435aa82d2b582bbbfe544954dfcbd9c00be9c560 100644
--- a/README.md
+++ b/README.md
@@ -12,13 +12,13 @@
#### 效果演示
-
+
#### 安装教程
1.在项目根目录下的build.gradle文件中
-```java
+```txt
allprojects {
repositories {
maven {
@@ -30,10 +30,10 @@ allprojects {
2.在entry模块下的build.gradle文件中
-```java
+```text
dependencies {
implementation('com.gitee.chinasoft_ohos:audio-visualizer-ohos:0.0.1-SNAPSHOT')
- ......
+ ......
}
```
@@ -43,7 +43,7 @@ dependencies {
在布局中引入对应的自定义控件用于绘制频率,例如:
-```xml
+```txt
@@ -195,7 +197,6 @@ public abstract class BaseVisualizer extends ComponentContainer {
@Override
public void onWaveData(byte[] mBytes, int i) {
BaseVisualizer.this.mRawAudioBytes = mBytes;
-
// 刷新
getContext().getUITaskDispatcher().syncDispatch(new Runnable() {
@Override
diff --git a/audiovisualizer/src/main/java/com/gauravk/audiovisualizer/visualizer/BlastVisualizer.java b/audiovisualizer/src/main/java/com/gauravk/audiovisualizer/visualizer/BlastVisualizer.java
index 21e32d97d6f514820c39ee2a367576417ceac81f..ce844f9d69b8e74f1653e2a0349c4d49960d3db4 100644
--- a/audiovisualizer/src/main/java/com/gauravk/audiovisualizer/visualizer/BlastVisualizer.java
+++ b/audiovisualizer/src/main/java/com/gauravk/audiovisualizer/visualizer/BlastVisualizer.java
@@ -93,7 +93,7 @@ public class BlastVisualizer extends BaseVisualizer implements Component.DrawTas
int t = 0;
if (x < 1024) {
t = ((byte) (-Math.abs(mRawAudioBytes[x]) + 128)) * (component.getHeight() / 4) / 128;
- System.out.println("zyf--------------- "+component.getHeight());
+
}
float posX = (float) (getWidth() / 2
diff --git a/audiovisualizer/src/main/java/com/gauravk/audiovisualizer/visualizer/BlobVisualizer.java b/audiovisualizer/src/main/java/com/gauravk/audiovisualizer/visualizer/BlobVisualizer.java
index 444c79d6327335d398c57a14a30de6f0842d95c5..dc7c77d8a95310b8b717649e98ebf2655712a9ea 100644
--- a/audiovisualizer/src/main/java/com/gauravk/audiovisualizer/visualizer/BlobVisualizer.java
+++ b/audiovisualizer/src/main/java/com/gauravk/audiovisualizer/visualizer/BlobVisualizer.java
@@ -23,11 +23,12 @@ import com.gauravk.audiovisualizer.utils.BezierSpline;
import ohos.agp.components.AttrSet;
import ohos.agp.components.Component;
-import ohos.agp.components.element.ShapeElement;
import ohos.agp.render.Canvas;
import ohos.agp.render.Path;
import ohos.agp.utils.Point;
import ohos.app.Context;
+import ohos.media.audio.AudioManager;
+import ohos.media.audio.AudioRemoteException;
/**
* Custom view to create blob visualizer
@@ -45,9 +46,10 @@ public class BlobVisualizer extends BaseVisualizer implements Component.DrawTask
private Point[] mBezierPoints;
private BezierSpline mBezierSpline;
-
+ private boolean isFirstPlay = true;
private float mAngleOffset;
private float mChangeFactor;
+ private AudioManager audioManager;
/**
* 使用java代码实例化调用
@@ -79,11 +81,10 @@ public class BlobVisualizer extends BaseVisualizer implements Component.DrawTask
super(context, attrSet, styleName);
}
-
-
@Override
protected void init() {
addDrawTask(this::onDraw);
+ audioManager = new AudioManager(getContext());
mRadius = -1;
nPoints = (int) (mDensity * BLOB_MAX_POINTS);
if (nPoints < BLOB_MIN_POINTS) {
@@ -128,7 +129,6 @@ public class BlobVisualizer extends BaseVisualizer implements Component.DrawTask
@Override
public void onDraw(Component component, Canvas canvas) {
-
double angle = 0;
// first time initialization
if (mRadius == -1) {
@@ -164,7 +164,6 @@ public class BlobVisualizer extends BaseVisualizer implements Component.DrawTask
// find the destination bezier point for a batch
for (int i = 0; i < nPoints; i++, angle += mAngleOffset) {
- Point mBezierPoint = mBezierPoints[i];
// 1=1 X=34 i=2 X=68
int x = (int) Math.ceil((i + 1) * (mRawAudioBytes.length / nPoints));
@@ -182,17 +181,17 @@ public class BlobVisualizer extends BaseVisualizer implements Component.DrawTask
* Math.sin(Math.toRadians(angle)));
// calculate the new x based on change
- if (posX - mBezierPoint.getPointXToInt() > 0) {
- mBezierPoint.modify(mBezierPoint.getPointX() + mChangeFactor, mBezierPoint.getPointY());
+ if (posX - mBezierPoints[i].getPointX() > 0) {
+ mBezierPoints[i].modify(mBezierPoints[i].getPointX() + mChangeFactor, mBezierPoints[i].getPointY());
} else {
- mBezierPoint.modify(mBezierPoint.getPointX() - mChangeFactor, mBezierPoint.getPointY());
+ mBezierPoints[i].modify(mBezierPoints[i].getPointX() - mChangeFactor, mBezierPoints[i].getPointY());
}
// calculate the new y based on change
- if (posY - mBezierPoint.getPointY() > 0) {
- mBezierPoint.modify(mBezierPoint.getPointX(), mBezierPoint.getPointY() + mChangeFactor);
+ if (posY - mBezierPoints[i].getPointY() > 0) {
+ mBezierPoints[i].modify(mBezierPoints[i].getPointX(), mBezierPoints[i].getPointY() + mChangeFactor);
} else {
- mBezierPoint.modify(mBezierPoint.getPointX(), mBezierPoint.getPointY() - mChangeFactor);
+ mBezierPoints[i].modify(mBezierPoints[i].getPointX(), mBezierPoints[i].getPointY() - mChangeFactor);
}
}
diff --git a/audiovisualizer/src/main/java/com/gauravk/audiovisualizer/visualizer/CircleLineVisualizer.java b/audiovisualizer/src/main/java/com/gauravk/audiovisualizer/visualizer/CircleLineVisualizer.java
index 6fd2c2e00c58cceb01351d6e11426787a2c2f416..1115c6a0fd2ca241365adc62f2c91cd1967a4acb 100644
--- a/audiovisualizer/src/main/java/com/gauravk/audiovisualizer/visualizer/CircleLineVisualizer.java
+++ b/audiovisualizer/src/main/java/com/gauravk/audiovisualizer/visualizer/CircleLineVisualizer.java
@@ -182,4 +182,4 @@ public class CircleLineVisualizer extends BaseVisualizer implements Component.Dr
public void setVisualizationEnabled(boolean b) {
isVisualizationEnabled = b;
}
-}
+}
\ No newline at end of file
diff --git a/entry/src/main/java/com/gauravk/audiovisualizersample/slice/MainAbilitySlice.java b/entry/src/main/java/com/gauravk/audiovisualizersample/slice/MainAbilitySlice.java
index 561415292ff73d26c67c562fa0322895265af0c6..d8e6bfa6f7a9b153082b7d172bd2c6343a9d3f9e 100644
--- a/entry/src/main/java/com/gauravk/audiovisualizersample/slice/MainAbilitySlice.java
+++ b/entry/src/main/java/com/gauravk/audiovisualizersample/slice/MainAbilitySlice.java
@@ -94,6 +94,7 @@ public class MainAbilitySlice extends AbilitySlice implements Component.ClickedL
|| verifySelfPermission(PermissionUtils.READ_MEDIA) != IBundleManager.PERMISSION_GRANTED
|| verifySelfPermission(PermissionUtils.WRITE_MEDIA) != IBundleManager.PERMISSION_GRANTED
|| verifySelfPermission(PermissionUtils.RECORD_AUDIO) != IBundleManager.PERMISSION_GRANTED
+ || verifySelfPermission(PermissionUtils.INTERNET) != IBundleManager.PERMISSION_GRANTED
) {
if (canRequestPermission(PermissionUtils.MICROPHONE)
|| canRequestPermission(PermissionUtils.READ_MEDIA)
diff --git a/entry/src/main/java/com/gauravk/audiovisualizersample/ui/MusicStreamAbility.java b/entry/src/main/java/com/gauravk/audiovisualizersample/ui/MusicStreamAbility.java
index 292611d216844626f8f5974ffbaaba1b0a99066b..c7d58042226f686751f44c7f76e35810e9ac333b 100644
--- a/entry/src/main/java/com/gauravk/audiovisualizersample/ui/MusicStreamAbility.java
+++ b/entry/src/main/java/com/gauravk/audiovisualizersample/ui/MusicStreamAbility.java
@@ -107,7 +107,9 @@ public class MusicStreamAbility extends Ability {
e.printStackTrace();
} finally {
try {
- inputStream.close();
+ if (inputStream != null) {
+ inputStream.close();
+ }
} catch (IOException e) {
e.printStackTrace();
}
diff --git a/entry/src/main/java/com/gauravk/audiovisualizersample/util/PermissionUtils.java b/entry/src/main/java/com/gauravk/audiovisualizersample/util/PermissionUtils.java
index 9c9c091bda0d40f86578cb1a90ab89ef152f56f6..716b5217742c15d717e999b79003f492cd734342 100644
--- a/entry/src/main/java/com/gauravk/audiovisualizersample/util/PermissionUtils.java
+++ b/entry/src/main/java/com/gauravk/audiovisualizersample/util/PermissionUtils.java
@@ -38,7 +38,10 @@ public class PermissionUtils {
* 重置权限
*/
public static final String RECORD_AUDIO = "ohos.permission.RECORD_AUDIO";
-
+ /**
+ * 网络权限
+ */
+ public static final String INTERNET = "ohos.permission.INTERNET";
/**
* 权限号
*/
@@ -46,5 +49,5 @@ public class PermissionUtils {
/**
* 权限数组
*/
- public static String[] permission = {MICROPHONE, READ_MEDIA, WRITE_MEDIA,RECORD_AUDIO};
+ public static String[] permission = {MICROPHONE, READ_MEDIA, WRITE_MEDIA,RECORD_AUDIO, INTERNET};
}
\ No newline at end of file
diff --git a/entry/src/main/resources/base/layout/activity_blob.xml b/entry/src/main/resources/base/layout/activity_blob.xml
index 3d5f2364b958a314221f92b55d40b0c1d70eb415..4e521329a2df26af14faff33aa4960ad2c320de1 100644
--- a/entry/src/main/resources/base/layout/activity_blob.xml
+++ b/entry/src/main/resources/base/layout/activity_blob.xml
@@ -1,5 +1,5 @@
-