Razieh Shahraki

ضبط کننده صدا

1 ارسال در این موضوع قرار دارد

در این آموزش میخواهیم برنامه ضبط صدا را آماده کنیم

برای این کار پروژه جدیدی ایجاد کرده

در فایل xml کد زیر را قرار می دهیم.

[shcode=xml]

   xmlns:tools="http://schemas.android.com/tools"

   android:layout_width="match_parent"

   android:layout_height="match_parent"

   tools:context=".MainActivity" >

  

          android:id="@+id/text1"

          android:layout_width="wrap_content"

          android:layout_height="wrap_content"

          android:layout_marginTop="10dp"

          android:text="Recording Point: -"

          android:textAppearance="?android:attr/textAppearanceMedium" />

  

           android:id="@+id/micImage"

          android:layout_width="60dp"

          android:layout_height="60dp"

          android:layout_below="@+id/text1"

          android:layout_centerHorizontal="true"

          android:layout_marginTop="20dp"

          android:src="@android:drawable/ic_btn_speak_now" />

  

  

           android:layout_height="wrap_content"

           android:layout_marginTop="10dp"

           android:layout_below="@+id/micImage"

           android:id="@+id/linear1"

           android:orientation="horizontal" >

      

              android:id="@+id/start"

              android:layout_width="wrap_content"

              android:layout_height="wrap_content"

              android:text="start" />

   

      

              android:id="@+id/stop"

              android:layout_width="wrap_content"

              android:layout_height="wrap_content"

              android:layout_marginLeft="10dp"

              android:enabled="false"

              android:text="stop" />

  

  

  

  

           android:layout_height="wrap_content"

           android:layout_marginTop="10dp"

           android:layout_below="@+id/linear1"

           android:id="@+id/linear2"

           android:orientation="horizontal" >

      

              android:id="@+id/play"

              android:layout_width="wrap_content"

              android:layout_height="wrap_content"

              android:enabled="false"

              android:text="play" />

      

      

              android:id="@+id/stopPlay"

              android:layout_width="wrap_content"

              android:layout_height="wrap_content"

              android:enabled="false"

              android:layout_marginLeft="10dp"

              android:text="stop playing" />

   

[/shcode]

در فایل جاوا کد زیر را قرار می دهیم.

[shcode=java]package com.example.soundrecord;

import java.io.IOException;

import android.media.MediaPlayer;

import android.media.MediaRecorder;

import android.os.Bundle;

import android.os.Environment;

import android.app.Activity;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.TextView;

import android.widget.Toast;

public class MainActivity extends Activity {

   private MediaRecorder myRecorder;

   private MediaPlayer myPlayer;

   private String outputFile = null;

   private Button startBtn;

   private Button stopBtn;

   private Button playBtn;

   private Button stopPlayBtn;

   private TextView text;

  

   @Override

   protected void onCreate(Bundle savedInstanceState) {

      super.onCreate(savedInstanceState);

      setContentView(R.layout.activity_main);

     

      text = (TextView) findViewById(R.id.text1);

      // store it to sd card

      outputFile = Environment.getExternalStorageDirectory().

              getAbsolutePath() + "/javacodegeeksRecording.3gpp";

      myRecorder = new MediaRecorder();

      myRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);

      myRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);

      myRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);

      myRecorder.setOutputFile(outputFile);

     

      startBtn = (Button)findViewById(R.id.start);

      startBtn.setOnClickListener(new OnClickListener() {

       

        @Override

        public void onClick(View v) {

            // TODO Auto-generated method stub

            start(v);

        }

      });

     

      stopBtn = (Button)findViewById(R.id.stop);

      stopBtn.setOnClickListener(new OnClickListener() {

         

          @Override

          public void onClick(View v) {

              // TODO Auto-generated method stub

              stop(v);

          }

      });

     

      playBtn = (Button)findViewById(R.id.play);

      playBtn.setOnClickListener(new OnClickListener() {

         

          @Override

          public void onClick(View v) {

              // TODO Auto-generated method stub

                play(v);   

          }

      });

     

      stopPlayBtn = (Button)findViewById(R.id.stopPlay);

      stopPlayBtn.setOnClickListener(new OnClickListener() {

         

          @Override

          public void onClick(View v) {

              // TODO Auto-generated method stub

              stopPlay(v);

          }

      });

   }

   public void start(View view){

       try {

          myRecorder.prepare();

          myRecorder.start();

       } catch (IllegalStateException e) {

          // start:it is called before prepare()

          // prepare: it is called after start() or before setOutputFormat()

          e.printStackTrace();

       } catch (IOException e) {

           // prepare() fails

           e.printStackTrace();

        }

      

       text.setText("Recording Point: Recording");

       startBtn.setEnabled(false);

       stopBtn.setEnabled(true);

      

       Toast.makeText(getApplicationContext(), "Start recording...",

               Toast.LENGTH_SHORT).show();

   }

   public void stop(View view){

       try {

          myRecorder.stop();

          myRecorder.release();

          myRecorder  = null;

         

          stopBtn.setEnabled(false);

          playBtn.setEnabled(true);

          text.setText("Recording Point: Stop recording");

         

          Toast.makeText(getApplicationContext(), "Stop recording...",

                  Toast.LENGTH_SHORT).show();

       } catch (IllegalStateException e) {

            //  it is called before start()

            e.printStackTrace();

       } catch (RuntimeException e) {

            // no valid audio/video data has been received

            e.printStackTrace();

       }

   }

 

   public void play(View view) {

       try{

           myPlayer = new MediaPlayer();

           myPlayer.setDataSource(outputFile);

           myPlayer.prepare();

           myPlayer.start();

          

           playBtn.setEnabled(false);

           stopPlayBtn.setEnabled(true);

           text.setText("Recording Point: Playing");

          

           Toast.makeText(getApplicationContext(), "Start play the recording...",

                   Toast.LENGTH_SHORT).show();

       } catch (Exception e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

   }

  

   public void stopPlay(View view) {

       try {

           if (myPlayer != null) {

               myPlayer.stop();

               myPlayer.release();

               myPlayer = null;

               playBtn.setEnabled(true);

               stopPlayBtn.setEnabled(false);

               text.setText("Recording Point: Stop playing");

              

               Toast.makeText(getApplicationContext(), "Stop playing the recording...",

                       Toast.LENGTH_SHORT).show();

           }

       } catch (Exception e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

   }

}

[/shcode]

و در فایل androidManifest.xml کد زیر را اضافه می کنیم

[shcode=xml] 

   [/shcode]

خروجی برنامه به صورت زیر می باشد.

do.php?img=652

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری