Ring Tone Text Transfer Language (RTTTL) was developed by Nokia to be used to transfer ringtones to cellphone by Nokia. (source: Wikipedia - Ring Tone Transfer Language).
We are going to play the RTTTL ringtone of "Haunted House" listed in the Wikipedia article as an example.
Create /res/raw/hauntedhouse.rtttl file to define ring tone of "Haunted House".
HauntedHouse: d=4,o=5,b=108: 2a4, 2e, 2d#, 2b4, 2a4, 2c, 2d, 2a#4, 2e., e, 1f4, 1a4, 1d#, 2e., d, 2c., b4, 1a4, 1p, 2a4, 2e, 2d#, 2b4, 2a4, 2c, 2d, 2a#4, 2e., e, 1f4, 1a4, 1d#, 2e., d, 2c., b4, 1a4
Modify layout to have buttons to start and stop the ring tone.
<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" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"
tools:context=".MainActivity" />
<Button
android:id="@+id/start"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Start" />
<Button
android:id="@+id/stop"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Stop" />
</LinearLayout>
The Java code of the activity.
package com.example.androidrtttl;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
Button buttonStart, buttonStop;
MediaPlayer mediaPlayer;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonStart = (Button)findViewById(R.id.start);
buttonStart.setOnClickListener(buttonStartOnClickListener);
buttonStop = (Button)findViewById(R.id.stop);
buttonStop.setOnClickListener(buttonStopOnClickListener);
}
OnClickListener buttonStartOnClickListener
= new OnClickListener(){
@Override
public void onClick(View v) {
if (mediaPlayer != null){
mediaPlayer.release();
}
mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.hauntedhouse);
mediaPlayer.setOnCompletionListener(mediaplayerCompletionListener);
mediaPlayer.start();
}
};
OnClickListener buttonStopOnClickListener
= new OnClickListener(){
@Override
public void onClick(View v) {
if (mediaPlayer != null){
mediaPlayer.stop();
mediaPlayer.release();
}
}};
OnCompletionListener mediaplayerCompletionListener
= new OnCompletionListener(){
@Override
public void onCompletion(MediaPlayer arg0) {
mediaPlayer.release();
Toast.makeText(getApplicationContext(),
"onCompletion",
Toast.LENGTH_LONG).show();
}};
}
0 Response to "Play RTTTL (Ring Tone Text Transfer Language) with MediaPlayer"
Posting Komentar