Write Date to AudioTrack : Date « Date Type « Android






Write Date to AudioTrack

     

package app.test;

import android.app.Activity;
import android.media.AudioFormat;
import android.media.AudioManager;
import android.media.AudioTrack;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;

public class Test extends Activity implements OnTouchListener {
  AudioSynthesisTask audioSynth;
  float BASE_FREQUENCY = 440,synth_frequency = BASE_FREQUENCY; // 440 Hz, Middle A
  boolean play = false;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    View mainView = this.findViewById(R.id.MainView);
    mainView.setOnTouchListener(this);
    audioSynth = new AudioSynthesisTask();
    audioSynth.execute();
  }
  @Override
  public void onPause() {
    super.onPause();
    play = false;
    finish();
  }
  public boolean onTouch(View v, MotionEvent event) {
    int action = event.getAction();
    switch (action) {
    case MotionEvent.ACTION_DOWN:
      play = true;
      synth_frequency = event.getX() + BASE_FREQUENCY;
      break;
    case MotionEvent.ACTION_MOVE:
      play = true;
      synth_frequency = event.getX() + BASE_FREQUENCY;
      break;
    case MotionEvent.ACTION_UP:
      play = false;
      break;
    case MotionEvent.ACTION_CANCEL:
      break;
    default:
      break;
    }
    return true;
  }
  private class AudioSynthesisTask extends AsyncTask<Void, Void, Void> {
    @Override
    protected Void doInBackground(Void... params) {
      final int SAMPLE_RATE = 11025;
      int minSize = AudioTrack.getMinBufferSize(SAMPLE_RATE,
          AudioFormat.CHANNEL_CONFIGURATION_MONO,
          AudioFormat.ENCODING_PCM_16BIT);
      AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,
          SAMPLE_RATE, AudioFormat.CHANNEL_CONFIGURATION_MONO,
          AudioFormat.ENCODING_PCM_16BIT, minSize,
          AudioTrack.MODE_STREAM);
      audioTrack.play();
      short[] buffer = new short[minSize];
      float angle = 0;
      while (true) {
        if (play) {
          for (int i = 0; i < buffer.length; i++) {
            float angular_frequency = (float) (2 * Math.PI) * synth_frequency / SAMPLE_RATE;
            buffer[i] = (short) (Short.MAX_VALUE * ((float) Math.sin(angle)));
            angle += angular_frequency;
          }
          audioTrack.write(buffer, 0, buffer.length);
        } 
      }
    }
  }
}
//main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/MainView"
    >
</LinearLayout>

   
    
    
    
    
  








Related examples in the same category

1.Represents a date using an integer, in a similar fashion to the implementation in Microsoft Excel.
2.A formatter that formats dates to show the elapsed time relative to some base date.
3.Iso Date
4.Get the string of the date using format "yyyy-MM-dd HH:mm:ss"
5.Parse a string that contains date, return a date object using format "yyyy-MM-dd HH:mm:ss"
6.Create Date from timestamp
7.Convert date in RFC2822 and UTC strings, and to build Date from string of dates in RFC2822 and UTC format
8.Gets a "HH:mm:ss.SSS EEE dd MMM yyyy" representation of a Date
9.Gets a "yyyy MMM dd, HH:mm:ss.SSS" representation of a Date
10.Gets a "EEE, dd MMM yyyy hh:mm:ss 'GMT'" representation of a Date
11.Parses a String for a "EEE, dd MMM yyyy hh:mm:ss 'GMT'" formatted Date
12.Formatting and parsing the various date formats we expect to encounter.
13.ISO8601, ISO8601, RFC822 Date format
14.Easter Date
15.Parse Date
16.compare Two dates with Day value
17.compare Two dates with Second value
18.Get start of a date
19.Get start date of a Month
20.Get start date of a year
21.Create date from year, month and day value
22.Create Date from year, month, day, hour, minute, second
23.Get year value from Date
24.Get Month value from Date
25.Get Day value from Date
26.Get now in Date and Millis-seconds
27.Add day, Month and year to a Date
28.Parse date in format of yyyyMMddHHmmss or yyyyMMdd
29.String to Date
30.Convert date value in long to YYYYMMDDHHMMSS format
31.Convert Date to Number
32.Get short and long date String
33.Convert Java Date To Xml Time
34.Convert dates to Julian dates.
35.Parse an RFC 822 date string.
36.Format a date into a format suitable for SQLite
37.Dot String to Date
38.Parses an RFC822 formatted date string.
39.Formats a Date according to RFC822.
40.DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT).format(date);
41.yyyy-MM-dd HH:mm:ss date format
42.Utility class for formatting and parsing the various date formats we expect to encounter.
43.Get a string representation of a date as it relates to the current time.
44.get Date String from milliseconds
45.Generate a ISO 8601 date
46.Generate a Calendar from ISO 8601 date
47.parse Date for list of possible formats
48.date To String
49.Get date string for Locale tr
50.RFC3339 Date
51.Date formats
52.build Date Format day-of-week Short
53.Get end of each day
54.Get the end of each Month
55.Get end of a year
56.calculate Month Distance
57.calculate Day Distance
58.The month, and just the month, is zero-based. Add 1 for display.
59.Get hour different
60.format Millis Into Human Readable