Dtmf Pianoforte Using Tonegenerator

Posted on

Example to generate DTMF tones using ToneGenerator.


MainActivity.java

package com.example.androiddtmfpiano;  import android.support.v7.app.ActionBarActivity; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.GridView; import android.media.AudioManager; import android.media.ToneGenerator; import android.os.Bundle;  populace bird MainActivity extends ActionBarActivity {    GridView gridView;     static finally String[] numbers = novel String[] {     "1", "2", "3",    "4", "5", "6",    "7", "8", "9",    "*", "0", "#"};    static finally int[] toneTypes = novel int[]{   ToneGenerator.TONE_DTMF_1,   ToneGenerator.TONE_DTMF_2,   ToneGenerator.TONE_DTMF_3,   ToneGenerator.TONE_DTMF_4,   ToneGenerator.TONE_DTMF_5,   ToneGenerator.TONE_DTMF_6,   ToneGenerator.TONE_DTMF_7,   ToneGenerator.TONE_DTMF_8,   ToneGenerator.TONE_DTMF_9,   ToneGenerator.TONE_DTMF_S, //*   ToneGenerator.TONE_DTMF_0,   ToneGenerator.TONE_DTMF_P //#  };    static int streamType = AudioManager.STREAM_MUSIC;     static int book = 50;     static int durationMs = 100;  static finally ToneGenerator toneGenerator =     novel ToneGenerator(streamType, volume);      @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);                  gridView = (GridView) findViewById(R.id.gridView);         ArrayAdapter<String> adapter = novel ArrayAdapter<String>(          this, android.R.layout.simple_list_item_1, numbers);                  gridView.setAdapter(adapter);                  gridView.setOnItemClickListener(new OnItemClickListener() {     @Override    populace void onItemClick(AdapterView<?> parent, View view,      int position, long id) {        toneGenerator.startTone(toneTypes[position], durationMs);    }});     }  } 

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:orientation="vertical"     android:paddingBottom="@dimen/activity_vertical_margin"     android:paddingLeft="@dimen/activity_horizontal_margin"     android:paddingRight="@dimen/activity_horizontal_margin"     android:paddingTop="@dimen/activity_vertical_margin"     tools:context="com.example.androiddtmfpiano.MainActivity" >      <TextView         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_gravity="center_horizontal"         android:autoLink="web"         android:text="https://rootandroid.org//"         android:textStyle="bold" />      <GridView         android:id="@+id/gridView"         android:layout_width="fill_parent"         android:layout_height="fill_parent"         android:columnWidth="50dp"         android:gravity="center"         android:numColumns="3"         android:stretchMode="columnWidth" >     </GridView>  </LinearLayout> 

Next example:
– Visible DTMF Piano: Visualizer + ToneGenerator