Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.iptea.audio22;
- import android.content.Intent;
- import android.graphics.Color;
- import android.media.AudioFormat;
- import android.media.AudioManager;
- import android.media.AudioTrack;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.MotionEvent;
- import android.view.View;
- import android.widget.ImageView;
- import android.widget.SeekBar;
- import com.hanks.htextview.base.HTextView;
- import com.sdsmdg.harjot.crollerTest.Croller;
- import com.skyfishjy.library.RippleBackground;
- import static java.lang.Math.abs;
- public class MainActivity extends AppCompatActivity {
- Thread t; //audio processing thread
- int sr = 44100; //sampling rate
- boolean isRunning = true; //audio on off
- //SeekBar fSlider;
- Croller croller;
- double sliderval = 0;
- int crolprogress = 0;
- int trackButPress = 0;
- /*public double fr = 440.f;*/
- public double fr;
- public int counter = 0;
- public int highCount = 0;
- public double max_frequency = 0;
- ImageView finishBut;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- final RippleBackground rippleBackground=(RippleBackground)findViewById(R.id.contents);
- final HTextView animText = (HTextView)findViewById(R.id.animatedText);
- final HTextView animText2 = (HTextView)findViewById(R.id.animatedText2);
- finishBut = (ImageView) findViewById(R.id.finishButton);
- ImageView kulak=(ImageView)findViewById(R.id.centerImage);
- croller = (Croller) findViewById(R.id.croller);
- /*croller.setProgress(crolprogress);*/
- croller.setProgress(0);
- kulak.setOnTouchListener(new View.OnTouchListener() {
- @Override
- public boolean onTouch(View v, MotionEvent event) {
- String both;
- String both2;
- switch (event.getAction()) {
- case MotionEvent.ACTION_DOWN:
- if ((trackButPress % 2) == 0) {
- isRunning = true;
- counter = 0;
- rippleBackground.startRippleAnimation();
- t = new Thread() {
- public void run() {
- int buffsize = AudioTrack.getMinBufferSize(sr,
- AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT);
- AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,
- sr, AudioFormat.CHANNEL_OUT_MONO,
- AudioFormat.ENCODING_PCM_16BIT, buffsize,
- AudioTrack.MODE_STREAM);
- short samples[] = new short[buffsize]; //audio synthesis
- int amp = 10000;
- double twopi = 8.*Math.atan(1.);
- double ph = 0.0;
- audioTrack.play(); //audio running
- /*counter = 0;*/
- while(isRunning){ //synthesis loop
- /*sliderval = counter;
- fr = 100*sliderval;
- */
- //sliderval = counter;
- fr = 100*counter;
- /*sliderval = counter*0.5 / croller.getMax();*/
- /*Log.d("ADebugTag", "counter: " + Integer.toString(counter));*/
- /*Log.d("ADebugTag", "fr: " + Double.toString(sliderval));*/
- /*fr = 440 + 440*sliderval;*/
- /*fr = 100 + 100*sliderval;*/
- /* crolprogress = fr/22000;
- croller.setProgress((int) crolprogress);*/
- /*fr = 440 + 440*sliderval;*/
- /*Log.d("ADebugTag", "fr: " + Double.toString(fr));*/
- /*Log.d("ADebugTag", "Value: " + Double.toString(fr));*/
- for(int i=0; i < buffsize; i++){
- samples[i] = (short) (amp*Math.sin(ph));
- ph += twopi*fr/sr;
- /*Log.d("ADebugTag", "ph: " + Double.toString(ph));*/
- /*Log.d("ADebugTag", "Value: HELLO WORLD");*/
- }
- audioTrack.write(samples, 0, buffsize);
- /*Log.d("ADebugTag", "counter: " + Integer.toString(counter));*/
- runOnUiThread(new Runnable() {
- @Override
- public void run() {
- /* if (( counter % 10 ) == 0) {
- //fSlider.setProgress(counter/89); // counter/100
- croller.setProgress(counter/89);
- counter = counter + 100;
- }*/
- /*crolprogress = counter/2;*/
- //Log.d("ADebugTag", "crolprogress: " + Double.toString(crolprogress));
- croller.setProgress(counter/2);
- //Log.d("ADebugTag", "croller progress: " + Double.toString(counter/2));
- /* if (counter > 2) {
- crolprogress = counter/2;
- croller.setProgress(crolprogress);
- }*/
- /*croller.setProgress(counter/89);*/
- //Log.d("ADebugTag", "counter: " + Integer.toString(counter));
- }
- });
- counter++;
- if (fr > 20000) {
- counter = 0;
- }
- }
- highCount = counter;
- /*counter = 0;*/
- audioTrack.stop();
- audioTrack.release();
- }
- };
- t.start();
- trackButPress++;
- return true;
- }
- else {
- isRunning = true;
- //Log.d("ADebugTag", "counter: " + Double.toString(counter));
- Log.d("ADebugTag", "highCount/2: " + Double.toString(highCount/2));
- croller.setStartOffset(highCount*36/20);
- /*croller.setStartOffset(45);*/
- highCount = counter;
- Log.d("ADebugTag", "highCount: " + Double.toString(highCount));
- counter = 0;
- /*counter = 0;*/
- rippleBackground.startRippleAnimation();
- t = new Thread() {
- public void run() {
- int buffsize = AudioTrack.getMinBufferSize(sr,
- AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT);
- AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,
- sr, AudioFormat.CHANNEL_OUT_MONO,
- AudioFormat.ENCODING_PCM_16BIT, buffsize,
- AudioTrack.MODE_STREAM);
- short samples[] = new short[buffsize]; //audio synthesis
- int amp = 10000;
- double twopi = 8.*Math.atan(1.);
- double ph = 0.0;
- audioTrack.play(); //audio running
- /*counter = 0;*/
- while(isRunning){ //synthesis loop
- //sliderval = counter;
- sliderval = highCount;
- /*sliderval = counter*0.5 / croller.getMax();*/
- /*Log.d("ADebugTag", "counter: " + Integer.toString(counter));*/
- /*Log.d("ADebugTag", "fr: " + Double.toString(sliderval));*/
- /*fr = 440 + 440*sliderval;*/
- /*fr = 100 + 100*sliderval;*/
- fr = 100*sliderval;
- /* crolprogress = fr/22000;
- croller.setProgress((int) crolprogress);*/
- /*fr = 440 + 440*sliderval;*/
- /* Log.d("ADebugTag", "fr: " + Double.toString(fr));*/
- /*Log.d("ADebugTag", "Value: " + Double.toString(fr));*/
- for(int i=0; i < buffsize; i++){
- samples[i] = (short) (amp*Math.sin(ph));
- ph += twopi*fr/sr;
- /*Log.d("ADebugTag", "ph: " + Double.toString(ph));*/
- /*Log.d("ADebugTag", "Value: HELLO WORLD");*/
- }
- audioTrack.write(samples, 0, buffsize);
- /*Log.d("ADebugTag", "counter: " + Integer.toString(counter));*/
- runOnUiThread(new Runnable() {
- @Override
- public void run() {
- /* if (( counter % 10 ) == 0) {
- //fSlider.setProgress(counter/89); // counter/100
- croller.setProgress(counter/89);
- counter = counter + 100;
- }*/
- /*crolprogress = abs(highCount-counter)/2;*/
- crolprogress = counter/2;
- //Log.d("ADebugTag", "crolprogress: " + Double.toString(crolprogress));
- croller.setProgress(crolprogress);
- //crolprogress = abs(counter-counter/2);
- /* if (counter > 2) {
- crolprogress = counter/2;
- croller.setProgress(crolprogress);
- }*/
- /*croller.setProgress(counter/89);*/
- /*Log.d("ADebugTag", "counter: " + Integer.toString(counter));*/
- }
- });
- counter--;
- highCount--;
- if (fr > 20000) {
- counter = 0;
- }
- }
- /*counter = 0;*/
- audioTrack.stop();
- audioTrack.release();
- }
- };
- t.start();
- trackButPress++;
- return true;
- }
- //m, k
- case MotionEvent.ACTION_UP:
- if (fr > max_frequency) {
- max_frequency = fr;
- if (max_frequency < 10000) {
- both = "You can hear up to: " + String.valueOf(max_frequency) + " Hz";
- both2 = "Try again :)";
- }
- else if (max_frequency > 10000 && max_frequency <15000) {
- both = "You can hear up to: " + String.valueOf(max_frequency) + " Hz";
- both2 = "Time to see a doctor :)";
- }
- else {
- both = "You can hear up to: " + String.valueOf(max_frequency) + " Hz";
- both2 = "Not bad :)";
- }
- animText.animateText(both);
- animText2.animateText(both2);
- }
- isRunning = false;
- /*counter = 0;*/
- t = null;
- rippleBackground.stopRippleAnimation();
- return true;
- }
- return false;
- }
- });
- }
- public void lastpage(View v) {
- //String strname = urname.getText().toString();
- //String stremail = uremail.getText().toString();
- /* if (strname.equals("")||stremail.equals("")) {
- Toast.makeText(getBaseContext(), "Enter both name and email", Toast.LENGTH_SHORT).show();
- }else {
- Intent in = new Intent(LoginActivity.this, VoiceActivity.class);
- Bundle bundle = new Bundle();
- bundle.putString("urname",strname);
- bundle.putString("uremail",stremail);
- in.putExtras(bundle);
- startActivity(in);
- }*/
- Intent initi = new Intent(MainActivity.this, ResultActivity.class);
- /* Bundle bundle = new Bundle();
- bundle.putString("urname",strname);
- bundle.putString("uremail",stremail);
- in.putExtras(bundle);*/
- startActivity(initi);
- }
- /* public void onDestroy(){
- super.onDestroy();
- isRunning = false;
- try {
- t.join();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- t = null;
- }*/
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement