diff --git a/.gitignore b/.gitignore index 5edb4eeb072097aee30adb329700b7790c26d756..603b14077394cd2294ac6922fe619669630ef3ab 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,14 @@ *.iml .gradle /local.properties +/.idea/caches /.idea/libraries /.idea/modules.xml /.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml .DS_Store /build /captures .externalNativeBuild +.cxx diff --git a/.idea/assetWizardSettings.xml b/.idea/assetWizardSettings.xml deleted file mode 100644 index ad71f776aa33cccefd52f1b8e981f360e8f16260..0000000000000000000000000000000000000000 --- a/.idea/assetWizardSettings.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser deleted file mode 100644 index f19be965c52557ea136bf3a42af27a65e6ba162c..0000000000000000000000000000000000000000 Binary files a/.idea/caches/build_file_checksums.ser and /dev/null differ diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml deleted file mode 100644 index 30aa626c23142d59e94cc76327172301f159b618..0000000000000000000000000000000000000000 --- a/.idea/codeStyles/Project.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml deleted file mode 100644 index 1d80560cd9ad547201ef968ff00dd8fa82655eac..0000000000000000000000000000000000000000 --- a/.idea/gradle.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 0d45e8dac234fb8d8ce72a22fa160d3a6ababc22..0000000000000000000000000000000000000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml deleted file mode 100644 index 7f68460d8b38ac04e3a3224d7c79ef719b1991a9..0000000000000000000000000000000000000000 --- a/.idea/runConfigurations.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 35eb1ddfbbc029bcab630581847471d7f238ec53..0000000000000000000000000000000000000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 21e489e781ebe851560e23704ea36531005dcf86..0000000000000000000000000000000000000000 --- a/.travis.yml +++ /dev/null @@ -1,24 +0,0 @@ -language: android - -# setup before install -before_install: -- echo yes | android update sdk --filter extra-android-support --no-ui --force > /dev/null -- echo yes | android update sdk --filter extra-android-m2repository --no-ui --force > /dev/null -- chmod +x ./gradlew -- cp local.properties.ci local.properties - -# define android packages and licenses -android: - components: - - tools - - platform-tools - - build-tools-28.0.3 - - android-28 - - extra-android-m2repository - - licenses: - - android-sdk-license-.+ - -# only perform unit test only -script: -- ./gradlew assembleDebug \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000000000000000000000000000000000000..492e3b282685c4895403b42a2d697b46557a678a --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,6 @@ +## 0.0.1-SNAPSHOT + +ohos第一个版本 + +* 实现了原库大部分api +* 因为缺少对应api,当前仅支持播放wav音频时背景联动,若播放mp3则背景不联动 \ No newline at end of file diff --git a/README.OPENRESOURCE.md b/README.OPENRESOURCE.md new file mode 100644 index 0000000000000000000000000000000000000000..f9e6356b6466314b296ebd0884fc1f920412dcdd --- /dev/null +++ b/README.OPENRESOURCE.md @@ -0,0 +1,10 @@ +[ + { + "Name": "AudioVisualizerOhos", + "License": "Apache License", + "License File": "LICENSE", + "Version Number": "0.9.1", + "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." + } +] \ No newline at end of file diff --git a/README.md b/README.md index 073ba8dca76666c4d4fb9969d7843997162d5d4a..a45e3f19c43c542d6c708babdc78eccbf2965019 100644 --- a/README.md +++ b/README.md @@ -1,120 +1,80 @@ -# Audio Visualizer -[![API](https://img.shields.io/badge/API-14%2B-brightgreen.svg?style=flat)](https://android-arsenal.com/api?level=14) -[![Download](https://api.bintray.com/packages/gauravk95/maven-repo/audiovisualizer/images/download.svg) ](https://bintray.com/gauravk95/maven-repo/audiovisualizer/_latestVersion) -[![Build Status](https://travis-ci.org/gauravk95/audio-visualizer-android.svg?branch=master)](https://travis-ci.org/gauravk95/audio-visualizer-android) -[![Android Arsenal]( https://img.shields.io/badge/Android%20Arsenal-Gaurav%20Kumar-green.svg?style=flat )]( https://android-arsenal.com/details/1/7204 ) -[![Android Weekly]( https://img.shields.io/badge/Android%20Weekly-%23352-blue.svg )]( http://androidweekly.net/issues/issue-352 ) +# audio-visualizer-ohos -A light-weight and easy-to-use Audio Visualizer for Android using the Android Canvas. +#### 项目介绍 -## Demos +* 项目名称:audio-visualizer-ohos +* 所属系列:openharmony的第三方组件适配移植 +* 功能:音频播放及背景联动 +* 项目移植状态:完成 +* 调用差异:当前仅支持播放wav格式音频,若想播放mp3音频,背景无法联动 +* 开发版本:sdk5,DevEco Studio2.1 beta4 +* 基线版本:Relesase版本号0.9.1 -| CircleLine | Hifi | -| ------------- |:-------------:| -| ![CircleLine](https://raw.githubusercontent.com/gauravk95/audio-visualizer-android/master/samplegif/circle_line_sample.gif) |![Hifi](https://raw.githubusercontent.com/gauravk95/audio-visualizer-android/master/samplegif/hifi_sample.gif)| +#### 效果演示 -| Blob | Blast | -| ------------- |:-------------:| -| ![Blob](https://raw.githubusercontent.com/gauravk95/audio-visualizer-android/master/samplegif/blob_sample.gif) |![Blast](https://raw.githubusercontent.com/gauravk95/audio-visualizer-android/master/samplegif/blast_sample.gif)| + -| Wave | Bar | -| ------------- |:-------------:| -| ![Wave](https://raw.githubusercontent.com/gauravk95/audio-visualizer-android/master/samplegif/wave_sample.gif) |![Bar](https://raw.githubusercontent.com/gauravk95/audio-visualizer-android/master/samplegif/bar_sample.gif)| +#### 安装教程 -## Available Visualizers: -* **BlobVisualizer** - Gives blob like effect, good for low bpm audio -* **BlastVisualizer** - Gives a blast like effect, very random, good for high bpm audio -* **WaveVisualizer** - Gives a nice wave like effect, good for all kinds of audio -* **BarVisualizer** - Gives the contemporary bar effect, good for all kinds of audio -* **CircleLineVisualizer** - Gives the circular bar like effect, good for all kinds of audio -* **HifiVisualizer** - Gives a unique circular wave like effect, good for all kinds of audio +1.在项目根目录下的build.gradle文件中 -## Usage - -**Note:** Use of the visualizer requires the permission `android.permission.RECORD_AUDIO` so add it to your manifest file. Also for Android 6.0 and above you will need request permission in runtime. +```java +allprojects { + repositories { + maven { + url 'https://s01.oss.sonatype.org/content/repositories/snapshots/' + } + } +} +``` -Check out the Sample app, to see how its implemented. +2.在entry模块下的build.gradle文件中 -* This library is available on JCenter. To use it, add the following to `build.gradle` -```gradle +```java dependencies { - implementation 'com.gauravk.audiovisualizer:audiovisualizer:0.9.2' -} + implementation('com.gitee.chinasoft_ohos:audio-visualizer-ohos:0.0.1-SNAPSHOT') + ...... + } ``` -* Add the `com.gauravk.audiovisualizer.visualizer.BlastVisualizer` to your XML Layout file: + + + +#### 使用说明 + +在布局中引入对应的自定义控件用于绘制频率,例如: + ```xml -``` -* Get the reference to this view in you Java Class -```java - //get reference to visualizer - mVisualizer = findViewById(R.id.blast); - - //TODO: init MediaPlayer and play the audio - - //get the AudioSessionId from your MediaPlayer and pass it to the visualizer - int audioSessionId = mAudioPlayer.getAudioSessionId(); - if (audioSessionId != -1) - mVisualizer.setAudioSessionId(audioSessionId); - + ohos:id="$+id:blast" + ohos:width="match_parent" + ohos:height="match_parent" + app:avColor="#2196F3" + app:avDensity="0.8" + app:avSpeed="normal" + app:avWidth="0vp" + app:avType="fill" /> ``` -*Alternatively*, you can pass the raw audio bytes to the visualizer -```java - //get reference to visualizer - mVisualizer = findViewById(R.id.blast); - //TODO: get the raw audio bytes - - //pass the bytes to visualizer - mVisualizer.setRawAudioBytes(bytes); -``` -**Now**, release the visualizer in your `onDestroy() or onStop()` -```java - @Override - protected void onDestroy() { - super.onDestroy(); - if (mVisualizer != null) - mVisualizer.release(); - } -``` -If you want to hide the view upon completion of the audio, use -```java - //TODO: check for completion of audio eg. using MediaPlayer.OnCompletionListener() - if (mVisualizer != null) - mVisualizer.hide(); -``` +用户可自定义播放器,在类中调用setAudioSessionId,背景即可跟随频率联动 -### Similarly, include other visualizer +#### 测试信息 -## Attributes -| **attr** | **Description** | -| ------------- | ------------- | -| avType | Changes the Visualization type - **outline** or **fill**. (N/A for Bar Visualizer) | -| avColor | Defines the color that is used in the visualizer | -| avDensity | Sets the density of the visualization between `(0,1)` | -| avSpeed | Defines the speed of the animation - **slow**, **medium** and **fast** | -| avGravity | Updates position of the visualizers - **top** and **bottom** (N/A for Blob and Blast Visualizers) | -| avWidth | Describes the width of the line if `avType is outline`, in case of Bar Visualizer, defines width of the bar | +CodeCheck代码测试无异常 -## Contribute +CloudTest代码测试无异常 -Found a bug or have an idea/feature request or any other help needed. Please suggest or report them [here](https://github.com/gauravk95/audio-visualizer-android/issues) +火绒安全病毒安全检测通过 -I am always open to new suggestions and good contributions. +当前版本demo功能与原组件基本无差异 -Thanks to [@wangfengye](https://github.com/wangfengye) for **CircleLineVisualizer** and **HifiVisualizer**. +#### 版本迭代 -## License: -``` - Copyright 2018 Gaurav Kumar +* 0.0.1-SNAPSHOT + +#### 版权和许可信息 + +```java + Copyright 2018 Gaurav Kumar Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -128,3 +88,4 @@ Thanks to [@wangfengye](https://github.com/wangfengye) for **CircleLineVisualize See the License for the specific language governing permissions and limitations under the License. ``` + diff --git a/app/build.gradle b/app/build.gradle deleted file mode 100644 index cfa76e4a62f0afceec1b0cefebac314abd33bddb..0000000000000000000000000000000000000000 --- a/app/build.gradle +++ /dev/null @@ -1,36 +0,0 @@ -apply plugin: 'com.android.application' - -android { - compileSdkVersion rootProject.ext.compileSdkVersion - defaultConfig { - applicationId "com.gauravk.audiovisualizersample" - minSdkVersion rootProject.ext.minSdkVersion - targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 1 - versionName "1.0" - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" - } - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' - } - } -} - -dependencies { - implementation fileTree(dir: 'libs', include: ['*.jar']) - //support dependencies - implementation "com.android.support:design:$supportLibraryVersion" - implementation "com.android.support:appcompat-v7:$supportLibraryVersion" - implementation "com.android.support:support-v4:$supportLibraryVersion" - implementation "com.android.support.constraint:constraint-layout:$constraintLayoutVersion" - - //test dependencies - testImplementation "junit:junit:$jUnitVersion" - androidTestImplementation "com.android.support.test:runner:$testRunnerVersion" - androidTestImplementation "com.android.support.test.espresso:espresso-core:$expressoVersion" - - //other module dependencies - implementation project(':audiovisualizer') -} diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro deleted file mode 100644 index f1b424510da51fd82143bc74a0a801ae5a1e2fcd..0000000000000000000000000000000000000000 --- a/app/proguard-rules.pro +++ /dev/null @@ -1,21 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile diff --git a/app/src/androidTest/java/com/gauravk/audiovisualizersample/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/gauravk/audiovisualizersample/ExampleInstrumentedTest.java deleted file mode 100644 index 387c224077c9750b58d6d5e6851c522ac1619406..0000000000000000000000000000000000000000 --- a/app/src/androidTest/java/com/gauravk/audiovisualizersample/ExampleInstrumentedTest.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.gauravk.audiovisualizersample; - -import android.content.Context; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumented test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getTargetContext(); - - assertEquals("com.gauravk.audiovisualizersample", appContext.getPackageName()); - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml deleted file mode 100644 index 98b9ad22d298cf3bf3f4851bf9d661036e74dd3c..0000000000000000000000000000000000000000 --- a/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/ic_launcher-web.png b/app/src/main/ic_launcher-web.png deleted file mode 100644 index 95ce4b67f1382b1502227fa28afffc6bffb8f87c..0000000000000000000000000000000000000000 Binary files a/app/src/main/ic_launcher-web.png and /dev/null differ diff --git a/app/src/main/java/com/gauravk/audiovisualizersample/ui/CircleLineActivity.java b/app/src/main/java/com/gauravk/audiovisualizersample/ui/CircleLineActivity.java deleted file mode 100644 index 6b2163bc74d38df665039468bfca512a449a730e..0000000000000000000000000000000000000000 --- a/app/src/main/java/com/gauravk/audiovisualizersample/ui/CircleLineActivity.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.gauravk.audiovisualizersample.ui; - -import android.support.v7.app.AppCompatActivity; -import android.os.Bundle; -import android.view.View; - -import com.gauravk.audiovisualizer.model.PaintStyle; -import com.gauravk.audiovisualizer.visualizer.CircleLineVisualizer; -import com.gauravk.audiovisualizersample.R; -import com.gauravk.audiovisualizersample.utils.AudioPlayer; - -public class CircleLineActivity extends AppCompatActivity { - - private AudioPlayer mAudioPlayer; - private CircleLineVisualizer mVisualizer; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_circle_line); - mVisualizer = findViewById(R.id.blob); - mAudioPlayer = new AudioPlayer(); - mVisualizer.setDrawLine(true); - } - @Override - protected void onStart() { - super.onStart(); - - startPlayingAudio(R.raw.sample); - } - - @Override - protected void onStop() { - super.onStop(); - stopPlayingAudio(); - } - - private void startPlayingAudio(int resId) { - mAudioPlayer.play(this, resId, new AudioPlayer.AudioPlayerEvent() { - @Override - public void onCompleted() { - if (mVisualizer != null) - mVisualizer.hide(); - } - }); - int audioSessionId = mAudioPlayer.getAudioSessionId(); - if (audioSessionId != -1) - mVisualizer.setAudioSessionId(audioSessionId); - } - - private void stopPlayingAudio() { - if (mAudioPlayer != null) - mAudioPlayer.stop(); - if (mVisualizer != null) - mVisualizer.release(); - } - -} diff --git a/app/src/main/java/com/gauravk/audiovisualizersample/ui/HiFiActivity.java b/app/src/main/java/com/gauravk/audiovisualizersample/ui/HiFiActivity.java deleted file mode 100644 index 5264861e1b4cb7bf26a410943bca26be020a50ff..0000000000000000000000000000000000000000 --- a/app/src/main/java/com/gauravk/audiovisualizersample/ui/HiFiActivity.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.gauravk.audiovisualizersample.ui; - -import android.support.v7.app.AppCompatActivity; -import android.os.Bundle; - -import com.gauravk.audiovisualizer.visualizer.CircleLineVisualizer; -import com.gauravk.audiovisualizer.visualizer.HiFiVisualizer; -import com.gauravk.audiovisualizersample.R; -import com.gauravk.audiovisualizersample.utils.AudioPlayer; - -public class HiFiActivity extends AppCompatActivity { - private AudioPlayer mAudioPlayer; - private HiFiVisualizer mVisualizer; - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_hi_fi); - mVisualizer = findViewById(R.id.hifi); - mAudioPlayer = new AudioPlayer(); - } - @Override - protected void onStart() { - super.onStart(); - - startPlayingAudio(R.raw.sample); - } - - @Override - protected void onStop() { - super.onStop(); - stopPlayingAudio(); - } - - private void startPlayingAudio(int resId) { - mAudioPlayer.play(this, resId, new AudioPlayer.AudioPlayerEvent() { - @Override - public void onCompleted() { - if (mVisualizer != null) - mVisualizer.hide(); - } - }); - int audioSessionId = mAudioPlayer.getAudioSessionId(); - if (audioSessionId != -1) - mVisualizer.setAudioSessionId(audioSessionId); - } - - private void stopPlayingAudio() { - if (mAudioPlayer != null) - mAudioPlayer.stop(); - if (mVisualizer != null) - mVisualizer.release(); - }} diff --git a/app/src/main/java/com/gauravk/audiovisualizersample/ui/MainActivity.java b/app/src/main/java/com/gauravk/audiovisualizersample/ui/MainActivity.java deleted file mode 100644 index 4592ca291a8d3e58b818ae7271565754fd517de4..0000000000000000000000000000000000000000 --- a/app/src/main/java/com/gauravk/audiovisualizersample/ui/MainActivity.java +++ /dev/null @@ -1,138 +0,0 @@ -/* - Copyright 2018 Gaurav Kumar - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -package com.gauravk.audiovisualizersample.ui; - -import android.Manifest; -import android.content.Intent; -import android.content.pm.PackageManager; -import android.support.v4.app.ActivityCompat; -import android.support.v7.app.AppCompatActivity; -import android.os.Bundle; -import android.view.View; - -import com.gauravk.audiovisualizer.visualizer.CircleLineVisualizer; -import com.gauravk.audiovisualizer.visualizer.HiFiVisualizer; -import com.gauravk.audiovisualizersample.R; - -public class MainActivity extends AppCompatActivity implements View.OnClickListener{ - - private static final int PERM_REQ_CODE = 23; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - - findViewById(R.id.v_blob_btn).setOnClickListener(this); - findViewById(R.id.v_blast_btn).setOnClickListener(this); - findViewById(R.id.v_wave_btn).setOnClickListener(this); - findViewById(R.id.v_bar_btn).setOnClickListener(this); - findViewById(R.id.v_stream_btn).setOnClickListener(this); - findViewById(R.id.v_circle_line_btn).setOnClickListener(this); - findViewById(R.id.v_hifi_btn).setOnClickListener(this); - } - - @Override - public void onClick(View view) { - switch (view.getId()){ - case R.id.v_blob_btn: - if (checkAudioPermission()) - launchBlobActivity(); - else - requestAudioPermission(); - break; - case R.id.v_blast_btn: - if (checkAudioPermission()) - launchBlastActivity(); - else - requestAudioPermission(); - break; - case R.id.v_wave_btn: - if (checkAudioPermission()) - launchWaveActivity(); - else - requestAudioPermission(); - break; - case R.id.v_bar_btn: - if (checkAudioPermission()) - launchSpikyWaveActivity(); - else - requestAudioPermission(); - break; - case R.id.v_stream_btn: - if (checkAudioPermission()) - launchMusicStreamActivity(); - else - requestAudioPermission(); - break; - case R.id.v_circle_line_btn: - if (checkAudioPermission()){ - launchCircleLinectivity(); - } - - else - requestAudioPermission(); - break; - case R.id.v_hifi_btn: - if (checkAudioPermission()){ - Intent intent = new Intent(MainActivity.this, HiFiActivity.class); - startActivity(intent); - } - - else - requestAudioPermission(); - break; - } - } - - private boolean checkAudioPermission() { - return ActivityCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED; - } - - private void requestAudioPermission() { - ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.RECORD_AUDIO}, PERM_REQ_CODE); - } - - private void launchBlobActivity() { - Intent intent = new Intent(MainActivity.this, BlobActivity.class); - startActivity(intent); - } - - private void launchBlastActivity() { - Intent intent = new Intent(MainActivity.this, BlastActivity.class); - startActivity(intent); - } - - private void launchWaveActivity() { - Intent intent = new Intent(MainActivity.this, WaveActivity.class); - startActivity(intent); - } - - private void launchSpikyWaveActivity() { - Intent intent = new Intent(MainActivity.this, BarActivity.class); - startActivity(intent); - } - - private void launchMusicStreamActivity() { - Intent intent = new Intent(MainActivity.this, MusicStreamActivity.class); - startActivity(intent); - } - private void launchCircleLinectivity() { - Intent intent = new Intent(MainActivity.this, CircleLineActivity.class); - startActivity(intent); - } - -} diff --git a/app/src/main/java/com/gauravk/audiovisualizersample/ui/MusicStreamActivity.java b/app/src/main/java/com/gauravk/audiovisualizersample/ui/MusicStreamActivity.java deleted file mode 100644 index b9cbb44f41d1ae60a6c285bc151ffcc6019ef796..0000000000000000000000000000000000000000 --- a/app/src/main/java/com/gauravk/audiovisualizersample/ui/MusicStreamActivity.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.gauravk.audiovisualizersample.ui; - -import android.app.ProgressDialog; -import android.media.AudioManager; -import android.media.MediaPlayer; -import android.os.AsyncTask; -import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; -import android.view.View; -import android.widget.ImageButton; - -import com.gauravk.audiovisualizer.visualizer.BlastVisualizer; -import com.gauravk.audiovisualizersample.R; - -import java.io.IOException; - -public class MusicStreamActivity extends AppCompatActivity { - - ImageButton imgButton; - BlastVisualizer mVisualizer; - MediaPlayer mediaPlayer; - - String stream = "http://stream.radioreklama.bg/radio1rock128"; - - boolean prepared = false; - boolean started = false; - private ProgressDialog progressDialog; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_music_stream); - - imgButton = findViewById(R.id.playbtn); - imgButton.setImageResource(R.drawable.playbtn); - mVisualizer = findViewById(R.id.blast); - - mediaPlayer = new MediaPlayer(); - mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); - - int audioSessionId = mediaPlayer.getAudioSessionId(); - if (audioSessionId != AudioManager.ERROR) { - mVisualizer.setAudioSessionId(mediaPlayer.getAudioSessionId()); - } - - progressDialog = new ProgressDialog(this); - progressDialog.setMessage("Loading..."); - progressDialog.show(); - - new PlayerTask().execute(stream); - - imgButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (started) { - started = false; - mediaPlayer.pause(); - imgButton.setImageResource(R.drawable.playbtn); - } else { - started = true; - mediaPlayer.start(); - mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { - public void onPrepared(MediaPlayer mp) { - mp.start(); - } - }); - imgButton.setImageResource(R.drawable.pausebtn); - } - } - }); - } - - class PlayerTask extends AsyncTask { - @Override - protected Boolean doInBackground(String... strings) { - - try { - mediaPlayer.setDataSource(strings[0]); - mediaPlayer.prepare(); - prepared = true; - } catch (IOException e) { - e.printStackTrace(); - } - return prepared; - } - - @Override - protected void onPostExecute(Boolean aBoolean) { - super.onPostExecute(aBoolean); - - if (progressDialog.isShowing()) { - progressDialog.cancel(); - } - imgButton.setImageResource(R.drawable.playbtn); - } - } - - @Override - protected void onPause() { - super.onPause(); - if (started) { - mediaPlayer.pause(); - } - } - - @Override - protected void onResume() { - super.onResume(); - if (started) { - //mediaPlayer.start(); - mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { - public void onPrepared(MediaPlayer mp) { - mp.start(); - } - }); - mediaPlayer.prepareAsync(); - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (prepared) { - mediaPlayer.release(); - } - if (mVisualizer != null) - mVisualizer.release(); - } -} diff --git a/app/src/main/java/com/gauravk/audiovisualizersample/utils/AudioPlayer.java b/app/src/main/java/com/gauravk/audiovisualizersample/utils/AudioPlayer.java deleted file mode 100644 index 4296ccddca31d055d594df89829e48d42c81af95..0000000000000000000000000000000000000000 --- a/app/src/main/java/com/gauravk/audiovisualizersample/utils/AudioPlayer.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - Copyright 2018 Gaurav Kumar - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -package com.gauravk.audiovisualizersample.utils; - -import android.content.Context; -import android.media.MediaPlayer; - -public class AudioPlayer { - - private MediaPlayer mMediaPlayer; - - public void stop() { - if (mMediaPlayer != null) { - mMediaPlayer.release(); - mMediaPlayer = null; - } - } - - public void play(Context c, int rid, final AudioPlayerEvent audioPlayerEvent) { - stop(); - - mMediaPlayer = MediaPlayer.create(c, rid); - mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { - @Override - public void onCompletion(MediaPlayer mediaPlayer) { - stop(); - if (audioPlayerEvent != null) - audioPlayerEvent.onCompleted(); - } - }); - - mMediaPlayer.start(); - } - - public int getAudioSessionId() { - if (mMediaPlayer == null) - return -1; - return mMediaPlayer.getAudioSessionId(); - } - - public interface AudioPlayerEvent { - void onCompleted(); - } - -} \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml deleted file mode 100644 index c7bd21dbd86990cde81fea8abd3bf904b4546749..0000000000000000000000000000000000000000 --- a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml deleted file mode 100644 index d5fccc538c179838bfdce779c26eebb4fa0b5ce9..0000000000000000000000000000000000000000 --- a/app/src/main/res/drawable/ic_launcher_background.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/pausebtn.xml b/app/src/main/res/drawable/pausebtn.xml deleted file mode 100644 index 4c34161c72c60f2c6f6dcd777fa036e19fddc20e..0000000000000000000000000000000000000000 --- a/app/src/main/res/drawable/pausebtn.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/playbtn.xml b/app/src/main/res/drawable/playbtn.xml deleted file mode 100644 index 9b54b6b742b5f5ee7203b1329fac8fc523b5d156..0000000000000000000000000000000000000000 --- a/app/src/main/res/drawable/playbtn.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/app/src/main/res/layout/activity_bar.xml b/app/src/main/res/layout/activity_bar.xml deleted file mode 100644 index c9d57274e675ef7f0b0bd980c9f07994d4e2e737..0000000000000000000000000000000000000000 --- a/app/src/main/res/layout/activity_bar.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_blast.xml b/app/src/main/res/layout/activity_blast.xml deleted file mode 100644 index 2ee44ae5de6ccb5a2ac6f081d2c9746fab05c2e8..0000000000000000000000000000000000000000 --- a/app/src/main/res/layout/activity_blast.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_blob.xml b/app/src/main/res/layout/activity_blob.xml deleted file mode 100644 index fa1125be7735001011b17b7dee074be842474162..0000000000000000000000000000000000000000 --- a/app/src/main/res/layout/activity_blob.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_circle_line.xml b/app/src/main/res/layout/activity_circle_line.xml deleted file mode 100644 index 85b1c836d019c7f859179858aea46609b88f34c5..0000000000000000000000000000000000000000 --- a/app/src/main/res/layout/activity_circle_line.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_hi_fi.xml b/app/src/main/res/layout/activity_hi_fi.xml deleted file mode 100644 index c94c6e76bd922f603990514fa37bb2d97fb73deb..0000000000000000000000000000000000000000 --- a/app/src/main/res/layout/activity_hi_fi.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml deleted file mode 100644 index e855720c2b24162638fef75dcf2dfb9afed95ab7..0000000000000000000000000000000000000000 --- a/app/src/main/res/layout/activity_main.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - -