Comments (3)
In your .xml file, using <com.gauravk.audiovisualizer.visualizer.BarVisualizer /> instead of <com.gauravk.audiovisualizer.visualizer.BlastVisualizer />
from audio-visualizer-android.
//I LEAVE MY CODE HERE
public class PlayerActivity extends AppCompatActivity {
Button btnPlay, btnNext, btnPrevious, btnFastForward, btnFastBackward;
TextView txtSongName, txtSongStart, txtSongEnd;
SeekBar seekMusicBar;
BarVisualizer barVisualizer;
ImageView imageView;
String songName;
public static final String EXTRA_NAME = "song_name";
static MediaPlayer mediaPlayer;
int position;
ArrayList<File> mySongs;
Thread updateSeekBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_player);
btnPrevious = findViewById(R.id.btnPrevious);
btnNext = findViewById(R.id.btnNext);
btnPlay = findViewById(R.id.btnPlay);
btnFastForward = findViewById(R.id.btnFastForward);
btnFastBackward = findViewById(R.id.btnFastBackward);
txtSongName = findViewById(R.id.txtSong);
txtSongStart = findViewById(R.id.txtSongStart);
txtSongEnd = findViewById(R.id.txtSongEnd);
seekMusicBar = findViewById(R.id.seekBar);
barVisualizer = findViewById(R.id.green_wave);
imageView = findViewById(R.id.imgView);
if (mediaPlayer != null){
mediaPlayer.start();
mediaPlayer.release();
}
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
mySongs = (ArrayList)bundle.getParcelableArrayList("songs");
String sName = intent.getStringExtra("songname");
position = bundle.getInt("pos", 0);
txtSongName.setSelected(true);
Uri uri = Uri.parse(mySongs.get(position).toString());
songName = mySongs.get(position).getName();
txtSongName.setText(songName);
mediaPlayer = MediaPlayer.create(getApplicationContext(), uri);
mediaPlayer.start();
updateSeekBar = new Thread(){
@Override
public void run() {
int totalDuration = mediaPlayer.getDuration();
int currentPosition = 0;
while(currentPosition < totalDuration) {
try {
sleep(500);
currentPosition = mediaPlayer.getCurrentPosition();
seekMusicBar.setProgress(currentPosition);
} catch (InterruptedException | IllegalStateException e) {
e.printStackTrace();
}
}
}
};
seekMusicBar.setMax(mediaPlayer.getDuration());
updateSeekBar.start();
seekMusicBar.getProgressDrawable().setColorFilter(getResources().getColor(R.color.teal_200), PorterDuff.Mode.MULTIPLY);
seekMusicBar.getThumb().setColorFilter(getResources().getColor(R.color.teal_200), PorterDuff.Mode.SRC_IN);
seekMusicBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
mediaPlayer.seekTo(seekBar.getProgress());
}
});
String endTime = createTime(mediaPlayer.getDuration());
txtSongEnd.setText(endTime);
final Handler handler = new Handler();
final int delay = 1000;
handler.postDelayed(new Runnable() {
@Override
public void run() {
String currentTime = createTime(mediaPlayer.getCurrentPosition());
txtSongStart.setText(currentTime);
handler.postDelayed(this, delay);
}
}, delay);
btnPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(mediaPlayer.isPlaying()){
btnPlay.setBackgroundResource(R.drawable.ic_play);
mediaPlayer.pause();
} else {
btnPlay.setBackgroundResource(R.drawable.ic_pause);
mediaPlayer.start();
TranslateAnimation moveAnim = new TranslateAnimation(-25, 25,-25, 25);
moveAnim.setInterpolator(new AccelerateInterpolator());
moveAnim.setDuration(600);
moveAnim.setFillEnabled(true);
moveAnim.setFillAfter(true);
moveAnim.setRepeatMode(Animation.REVERSE);
moveAnim.setRepeatCount(1);
imageView.startAnimation(moveAnim);
}
}
});
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
btnNext.performClick();
}
});
int audioSessionId = mediaPlayer.getAudioSessionId();
if (audioSessionId != -1) {
barVisualizer.setAudioSessionId(audioSessionId);
}
btnNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mediaPlayer.stop();
mediaPlayer.release();
position = ((position + 1)%mySongs.size());
Uri uri = Uri.parse(mySongs.get(position).toString());
mediaPlayer = MediaPlayer.create(getApplicationContext(), uri);
songName = mySongs.get(position).getName();
txtSongName.setText(songName);
mediaPlayer.start();
startAnimation(imageView, 360f);
}
});
btnPrevious.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mediaPlayer.stop();
mediaPlayer.release();
position = ((position - 1) < 0)?(mySongs.size() -1):position-1;
Uri uri = Uri.parse(mySongs.get(position).toString());
mediaPlayer = MediaPlayer.create(getApplicationContext(), uri);
songName = mySongs.get(position).getName();
txtSongName.setText(songName);
mediaPlayer.start();
startAnimation(imageView, -360f);
}
});
btnFastForward.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mediaPlayer.isPlaying()){
mediaPlayer.seekTo(mediaPlayer.getCurrentPosition() + 10000);
}
}
});
btnFastBackward.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mediaPlayer.isPlaying()){
mediaPlayer.seekTo(mediaPlayer.getCurrentPosition() - 10000);
}
}
});
}
public void startAnimation(View view, Float degree){
ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(imageView, "rotation", 0f, degree);
objectAnimator.setDuration(1000);
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.playTogether(objectAnimator);
animatorSet.start();
}
public String createTime(int duration){
String time = "";
int min = duration/1000/60;
int sec = duration/1000%60;
time = time + min + ":";
if (sec < 10) {
time+="0";
}
time+=sec;
return time;
}
}
from audio-visualizer-android.
Thank you! It works!!
from audio-visualizer-android.
Related Issues (20)
- Circle Line Visualiser effect in Swift for iOS
- Audio visualizer not showing the visualization even when audio session Id passed HOT 4
- Cannot initialize Visualizer engine, error: -3 HOT 6
- A sub feature to the library, to attain sound data amplitudes
- How to use this library with live recording HOT 2
- Class referenced in the layout file, `com.gauravk.audiovisualizer.visualizer.BarVisualizer`, was not found in the project or the libraries HOT 4
- this is not working for system audio music by playing other player HOT 1
- App crashed while trying to get reference of java class HOT 1
- provide this on mavencentral HOT 1
- dependencies error in android studio HOT 1
- Audio
- issues are pending,Please help me to resolve it. HOT 3
- java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.MediaPlayer.start()' on a null object reference HOT 4
- Cannot resolve class com.gauravk.audiovisualizer.visualizer.BarVisualizer HOT 2
- Failed to resolve: com.gauravk.audiovisualizer:audiovisualizer:0.9.2 HOT 5
- implementation 'com.gauravk.audiovisualizer:audiovisualizer:0.9.2' HOT 3
- when i add "com.gauravk.audiovisualizer.visualizer.BlastVisualizer" to my XML Layout file. My design in the Split is disappear. How can I fix that ? HOT 3
- Failed to instantiate one or more classes
- visualizer not working
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from audio-visualizer-android.