Advertisement
tuttelikz

Activity_main [v14?] croller poluchitsya

Oct 24th, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 15.45 KB | None | 0 0
  1. package com.example.iptea.audio22;
  2.  
  3. import android.content.Intent;
  4. import android.graphics.Color;
  5. import android.media.AudioFormat;
  6. import android.media.AudioManager;
  7. import android.media.AudioTrack;
  8. import android.support.v7.app.AppCompatActivity;
  9. import android.os.Bundle;
  10. import android.util.Log;
  11. import android.view.MotionEvent;
  12. import android.view.View;
  13. import android.widget.ImageView;
  14. import android.widget.SeekBar;
  15.  
  16. import com.hanks.htextview.base.HTextView;
  17. import com.sdsmdg.harjot.crollerTest.Croller;
  18. import com.skyfishjy.library.RippleBackground;
  19.  
  20. import static java.lang.Math.abs;
  21.  
  22. public class MainActivity extends AppCompatActivity {
  23.  
  24.     Thread t; //audio processing thread
  25.     int sr = 44100; //sampling rate
  26.     boolean isRunning = true; //audio on off
  27.     //SeekBar fSlider;
  28.     Croller croller;
  29.     double sliderval = 0;
  30.     int crolprogress = 0;
  31.     int trackButPress = 0;
  32.  
  33.     /*public double fr = 440.f;*/
  34.     public double fr;
  35.     public int counter = 0;
  36.     public int highCount = 0;
  37.     public double max_frequency = 0;
  38.     ImageView finishBut;
  39.     @Override
  40.  
  41.     protected void onCreate(Bundle savedInstanceState) {
  42.         super.onCreate(savedInstanceState);
  43.         setContentView(R.layout.activity_main);
  44.  
  45.         final RippleBackground rippleBackground=(RippleBackground)findViewById(R.id.contents);
  46.         final HTextView animText = (HTextView)findViewById(R.id.animatedText);
  47.         final HTextView animText2 = (HTextView)findViewById(R.id.animatedText2);
  48.  
  49.         finishBut = (ImageView) findViewById(R.id.finishButton);
  50.         ImageView kulak=(ImageView)findViewById(R.id.centerImage);
  51.  
  52.         croller = (Croller) findViewById(R.id.croller);
  53.         /*croller.setProgress(crolprogress);*/
  54.         croller.setProgress(0);
  55.         kulak.setOnTouchListener(new View.OnTouchListener() {
  56.             @Override
  57.             public boolean onTouch(View v, MotionEvent event) {
  58.                 String both;
  59.                 String both2;
  60.  
  61.                 switch (event.getAction()) {
  62.                     case MotionEvent.ACTION_DOWN:
  63.                         if ((trackButPress % 2) == 0) {
  64.  
  65.                             isRunning = true;
  66.                             counter = 0;
  67.                             rippleBackground.startRippleAnimation();
  68.                             t = new Thread() {
  69.                                 public void run() {
  70.                                     int buffsize = AudioTrack.getMinBufferSize(sr,
  71.                                             AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT);
  72.                                     AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,
  73.                                             sr, AudioFormat.CHANNEL_OUT_MONO,
  74.                                             AudioFormat.ENCODING_PCM_16BIT, buffsize,
  75.                                             AudioTrack.MODE_STREAM);
  76.  
  77.                                     short samples[] = new short[buffsize];  //audio synthesis
  78.                                     int amp = 10000;
  79.  
  80.                                     double twopi = 8.*Math.atan(1.);
  81.                                     double ph = 0.0;
  82.                                     audioTrack.play();      //audio running
  83.                             /*counter = 0;*/
  84.                                     while(isRunning){   //synthesis loop
  85.  
  86.                                         /*sliderval = counter;
  87.                                         fr =  100*sliderval;
  88.                                         */
  89.                                         //sliderval = counter;
  90.                                         fr =  100*counter;
  91.  
  92.  
  93.  
  94.                                     /*sliderval = counter*0.5 / croller.getMax();*/
  95.  
  96.  
  97.                                     /*Log.d("ADebugTag", "counter: " + Integer.toString(counter));*/
  98.                                     /*Log.d("ADebugTag", "fr: " + Double.toString(sliderval));*/
  99.  
  100.                                     /*fr =  440 + 440*sliderval;*/
  101.  
  102.                                     /*fr =  100 + 100*sliderval;*/
  103.  
  104.  
  105. /*                                    crolprogress =  fr/22000;
  106.                                     croller.setProgress((int) crolprogress);*/
  107.  
  108.                                     /*fr =  440 + 440*sliderval;*/
  109.                                         /*Log.d("ADebugTag", "fr: " + Double.toString(fr));*/
  110.                                     /*Log.d("ADebugTag", "Value: " + Double.toString(fr));*/
  111.  
  112.                                         for(int i=0; i < buffsize; i++){
  113.                                             samples[i] = (short) (amp*Math.sin(ph));
  114.                                             ph += twopi*fr/sr;
  115.                                         /*Log.d("ADebugTag", "ph: " + Double.toString(ph));*/
  116.  
  117.                                         /*Log.d("ADebugTag", "Value: HELLO WORLD");*/
  118.                                         }
  119.                                         audioTrack.write(samples, 0, buffsize);
  120.                                     /*Log.d("ADebugTag", "counter: " + Integer.toString(counter));*/
  121.  
  122.                                         runOnUiThread(new Runnable() {
  123.                                             @Override
  124.                                             public void run() {
  125. /*                                            if (( counter % 10 ) == 0) {
  126.                                                 //fSlider.setProgress(counter/89);  // counter/100
  127.                                                 croller.setProgress(counter/89);
  128.                                                 counter = counter + 100;
  129.                                             }*/
  130.  
  131.  
  132.  
  133.                                                 /*crolprogress = counter/2;*/
  134.                                                 //Log.d("ADebugTag", "crolprogress: " + Double.toString(crolprogress));
  135.                                                 croller.setProgress(counter/2);
  136.  
  137.                                                 //Log.d("ADebugTag", "croller progress: " + Double.toString(counter/2));
  138.  
  139.  
  140.  
  141. /*                                            if (counter > 2) {
  142.                                                 crolprogress = counter/2;
  143.                                                 croller.setProgress(crolprogress);
  144.                                             }*/
  145.  
  146.                                             /*croller.setProgress(counter/89);*/
  147.                                                 //Log.d("ADebugTag", "counter: " + Integer.toString(counter));
  148.                                             }
  149.                                         });
  150.                                         counter++;
  151.                                         if (fr > 20000) {
  152.                                             counter = 0;
  153.                                         }
  154.                                     }
  155.                                     highCount = counter;
  156.                                 /*counter = 0;*/
  157.  
  158.                                     audioTrack.stop();
  159.                                     audioTrack.release();
  160.                                 }
  161.                             };
  162.  
  163.                             t.start();
  164.                             trackButPress++;
  165.  
  166.  
  167.                             return true;
  168.                         }
  169.  
  170.                         else {
  171.                             isRunning = true;
  172.                             //Log.d("ADebugTag", "counter: " + Double.toString(counter));
  173.                             Log.d("ADebugTag", "highCount/2: " + Double.toString(highCount/2));
  174.                             croller.setStartOffset(highCount*36/20);
  175.  
  176.                             /*croller.setStartOffset(45);*/
  177.                             highCount = counter;
  178.                             Log.d("ADebugTag", "highCount: " + Double.toString(highCount));
  179.                             counter = 0;
  180.  
  181.                             /*counter = 0;*/
  182.                             rippleBackground.startRippleAnimation();
  183.                             t = new Thread() {
  184.                                 public void run() {
  185.                                     int buffsize = AudioTrack.getMinBufferSize(sr,
  186.                                             AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT);
  187.                                     AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,
  188.                                             sr, AudioFormat.CHANNEL_OUT_MONO,
  189.                                             AudioFormat.ENCODING_PCM_16BIT, buffsize,
  190.                                             AudioTrack.MODE_STREAM);
  191.  
  192.                                     short samples[] = new short[buffsize];  //audio synthesis
  193.                                     int amp = 10000;
  194.  
  195.                                     double twopi = 8.*Math.atan(1.);
  196.                                     double ph = 0.0;
  197.                                     audioTrack.play();      //audio running
  198.                             /*counter = 0;*/
  199.                                     while(isRunning){   //synthesis loop
  200.  
  201.                                         //sliderval = counter;
  202.                                         sliderval = highCount;
  203.  
  204.                                     /*sliderval = counter*0.5 / croller.getMax();*/
  205.  
  206.  
  207.                                     /*Log.d("ADebugTag", "counter: " + Integer.toString(counter));*/
  208.                                     /*Log.d("ADebugTag", "fr: " + Double.toString(sliderval));*/
  209.  
  210.                                     /*fr =  440 + 440*sliderval;*/
  211.  
  212.                                     /*fr =  100 + 100*sliderval;*/
  213.  
  214.                                         fr =  100*sliderval;
  215. /*                                    crolprogress =  fr/22000;
  216.                                     croller.setProgress((int) crolprogress);*/
  217.  
  218.                                     /*fr =  440 + 440*sliderval;*/
  219.                                        /* Log.d("ADebugTag", "fr: " + Double.toString(fr));*/
  220.                                     /*Log.d("ADebugTag", "Value: " + Double.toString(fr));*/
  221.  
  222.                                         for(int i=0; i < buffsize; i++){
  223.                                             samples[i] = (short) (amp*Math.sin(ph));
  224.                                             ph += twopi*fr/sr;
  225.                                         /*Log.d("ADebugTag", "ph: " + Double.toString(ph));*/
  226.  
  227.                                         /*Log.d("ADebugTag", "Value: HELLO WORLD");*/
  228.                                         }
  229.                                         audioTrack.write(samples, 0, buffsize);
  230.                                     /*Log.d("ADebugTag", "counter: " + Integer.toString(counter));*/
  231.  
  232.                                         runOnUiThread(new Runnable() {
  233.                                             @Override
  234.                                             public void run() {
  235. /*                                            if (( counter % 10 ) == 0) {
  236.                                                 //fSlider.setProgress(counter/89);  // counter/100
  237.                                                 croller.setProgress(counter/89);
  238.                                                 counter = counter + 100;
  239.                                             }*/
  240.  
  241.                                                 /*crolprogress = abs(highCount-counter)/2;*/
  242.                                                 crolprogress = counter/2;
  243.                                                 //Log.d("ADebugTag", "crolprogress: " + Double.toString(crolprogress));
  244.                                                 croller.setProgress(crolprogress);
  245.  
  246.                                                 //crolprogress = abs(counter-counter/2);
  247.  
  248. /*                                            if (counter > 2) {
  249.                                                 crolprogress = counter/2;
  250.                                                 croller.setProgress(crolprogress);
  251.                                             }*/
  252.  
  253.                                             /*croller.setProgress(counter/89);*/
  254.                                                 /*Log.d("ADebugTag", "counter: " + Integer.toString(counter));*/
  255.                                             }
  256.                                         });
  257.                                         counter--;
  258.                                         highCount--;
  259.                                         if (fr > 20000) {
  260.                                             counter = 0;
  261.                                         }
  262.                                     }
  263.                                 /*counter = 0;*/
  264.  
  265.                                     audioTrack.stop();
  266.                                     audioTrack.release();
  267.                                 }
  268.                             };
  269.  
  270.                             t.start();
  271.                             trackButPress++;
  272.                             return true;
  273.                         }
  274.  
  275.                     //m, k
  276.                     case MotionEvent.ACTION_UP:
  277.  
  278.                         if (fr > max_frequency) {
  279.                             max_frequency = fr;
  280.                             if (max_frequency < 10000) {
  281.                                 both = "You can hear up to: " + String.valueOf(max_frequency) + " Hz";
  282.                                 both2 = "Try again :)";
  283.                             }
  284.                             else if (max_frequency > 10000 && max_frequency <15000) {
  285.                                 both = "You can hear up to: " + String.valueOf(max_frequency) + " Hz";
  286.                                 both2 = "Time to see a doctor :)";
  287.                             }
  288.                             else {
  289.                                 both = "You can hear up to: " + String.valueOf(max_frequency) + " Hz";
  290.                                 both2 = "Not bad :)";
  291.                             }
  292.                             animText.animateText(both);
  293.                             animText2.animateText(both2);
  294.                         }
  295.                         isRunning = false;
  296.                         /*counter = 0;*/
  297.                         t = null;
  298.                         rippleBackground.stopRippleAnimation();
  299.  
  300.                         return true;
  301.                 }
  302.  
  303.                 return false;
  304.             }
  305.         });
  306.     }
  307.     public void lastpage(View v) {
  308.         //String strname = urname.getText().toString();
  309.         //String stremail = uremail.getText().toString();
  310.  
  311. /*        if (strname.equals("")||stremail.equals("")) {
  312.             Toast.makeText(getBaseContext(), "Enter both name and email", Toast.LENGTH_SHORT).show();
  313.         }else {
  314.             Intent in = new Intent(LoginActivity.this, VoiceActivity.class);
  315.             Bundle bundle = new Bundle();
  316.             bundle.putString("urname",strname);
  317.             bundle.putString("uremail",stremail);
  318.             in.putExtras(bundle);
  319.             startActivity(in);
  320.         }*/
  321.         Intent initi = new Intent(MainActivity.this, ResultActivity.class);
  322. /*        Bundle bundle = new Bundle();
  323.         bundle.putString("urname",strname);
  324.         bundle.putString("uremail",stremail);
  325.         in.putExtras(bundle);*/
  326.         startActivity(initi);
  327.     }
  328. /*    public void onDestroy(){
  329.         super.onDestroy();
  330.         isRunning = false;
  331.         try {
  332.             t.join();
  333.         } catch (InterruptedException e) {
  334.             e.printStackTrace();
  335.         }
  336.         t = null;
  337.     }*/
  338. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement