Contoh Android MediaRecorder
September 11, 2020
Add Comment
Kelas MediaRecorder dapat digunakan untuk merekam file audio dan video.
Setelah merekam media, kita dapat membuat file suara yang dapat diputar nanti.
Dalam contoh ini, kita akan merekam file audio dan menyimpannya dalam direktori eksternal dalam format 3gp.
Setelah merekam media, kita dapat membuat file suara yang dapat diputar nanti.
Dalam contoh ini, kita akan merekam file audio dan menyimpannya dalam direktori eksternal dalam format 3gp.
* Main activity
Seret 2 tombol dari pallete, satu untuk memulai perekaman dan satu lagi menghentikan perekaman. Di sini, kita mendaftarkan tampilan dengan listener dalam file xml menggunakan android:onClick. File : activity_main.xml<RelativeLayout xmlns:androclass="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: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=".MainActivity" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="68dp" android:layout_marginTop="50dp" android:text="Start Recording" android:onClick="startRecording" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/button1" android:layout_below="@+id/button1" android:layout_marginTop="64dp" android:text="Stop Recording" android:onClick="stopRecording" /> </RelativeLayout>
* Activity class
File : MainActivity.javapackage com.android.mediarecorder; import java.io.File; import java.io.IOException; import android.app.Activity; import android.content.ContentResolver; import android.content.ContentValues; import android.content.Intent; import android.media.MediaRecorder; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity { MediaRecorder recorder; File audiofile = null; static final String TAG = "MediaRecording"; Button startButton,stopButton; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); startButton = (Button) findViewById(R.id.button1); stopButton = (Button) findViewById(R.id.button2); } public void startRecording(View view) throws IOException { startButton.setEnabled(false); stopButton.setEnabled(true); //Creating file File dir = Environment.getExternalStorageDirectory(); try { audiofile = File.createTempFile("sound", ".3gp", dir); } catch (IOException e) { Log.e(TAG, "external storage access error"); return; } //Creating MediaRecorder and specifying audio source, output format, encoder & output format recorder = new MediaRecorder(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); recorder.setOutputFile(audiofile.getAbsolutePath()); recorder.prepare(); recorder.start(); } public void stopRecording(View view) { startButton.setEnabled(true); stopButton.setEnabled(false); //stopping recorder recorder.stop(); recorder.release(); //after stopping the recorder, create the sound file and add it to media library. addRecordingToMediaLibrary(); } protected void addRecordingToMediaLibrary() { //creating content values of size 4 ContentValues values = new ContentValues(4); long current = System.currentTimeMillis(); values.put(MediaStore.Audio.Media.TITLE, "audio" + audiofile.getName()); values.put(MediaStore.Audio.Media.DATE_ADDED, (int) (current / 1000)); values.put(MediaStore.Audio.Media.MIME_TYPE, "audio/3gpp"); values.put(MediaStore.Audio.Media.DATA, audiofile.getAbsolutePath()); //creating content resolver and storing it in the external content uri ContentResolver contentResolver = getContentResolver(); Uri base = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; Uri newUri = contentResolver.insert(base, values); //sending broadcast message to scan the media file so that it can be available sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, newUri)); Toast.makeText(this, "Added File " + newUri, Toast.LENGTH_LONG).show(); } }
0 Response to "Contoh Android MediaRecorder"
Posting Komentar