رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

سوال درباره ی رکورد صدا


پست های پیشنهاد شده

با سلام سوالی داشتم

من بر فرض برنامه ای دارم که یک صدایی پخش میکند میخواستم یک کد بهم بدین که وقتی روی یک دکمه کلیک میشه شروع به رکورد آن صدا کند و یک دکمه به نام Stop باشه جهت تمام شدن رکورد و ذخیره ی آن در یک جا ممنون میشم کمکم کنید

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

دوست عزیز کد زیر و ببین

[shcode=java]

/*

 * The application needs to have the permission to write to external storage

 * if the output file is written to the external storage, and also the

 * permission to record audio. These permissions must be set in the

 * application's AndroidManifest.xml file, with something like:

 *

 *

 *

 *

 */

package com.android.audiorecordtest;

import android.app.Activity;

import android.widget.LinearLayout;

import android.os.Bundle;

import android.os.Environment;

import android.view.ViewGroup;

import android.widget.Button;

import android.view.View;

import android.view.View.OnClickListener;

import android.content.Context;

import android.util.Log;

import android.media.MediaRecorder;

import android.media.MediaPlayer;

import java.io.IOException;

public class AudioRecordTest extends Activity

{

    private static final String LOG_TAG = "AudioRecordTest";

    private static String mFileName = null;

    private RecordButton mRecordButton = null;

    private MediaRecorder mRecorder = null;

    private PlayButton   mPlayButton = null;

    private MediaPlayer   mPlayer = null;

    private void onRecord(boolean start) {

        if (start) {

            startRecording();

        } else {

            stopRecording();

        }

    }

    private void onPlay(boolean start) {

        if (start) {

            startPlaying();

        } else {

            stopPlaying();

        }

    }

    private void startPlaying() {

        mPlayer = new MediaPlayer();

        try {

            mPlayer.setDataSource(mFileName);

            mPlayer.prepare();

            mPlayer.start();

        } catch (IOException e) {

            Log.e(LOG_TAG, "prepare() failed");

        }

    }

    private void stopPlaying() {

        mPlayer.release();

        mPlayer = null;

    }

    private void startRecording() {

        mRecorder = new MediaRecorder();

        mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);

        mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);

        mRecorder.setOutputFile(mFileName);

        mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

        try {

            mRecorder.prepare();

        } catch (IOException e) {

            Log.e(LOG_TAG, "prepare() failed");

        }

        mRecorder.start();

    }

    private void stopRecording() {

        mRecorder.stop();

        mRecorder.release();

        mRecorder = null;

    }

    class RecordButton extends Button {

        boolean mStartRecording = true;

        OnClickListener clicker = new OnClickListener() {

            public void onClick(View v) {

                onRecord(mStartRecording);

                if (mStartRecording) {

                    setText("Stop recording");

                } else {

                    setText("Start recording");

                }

                mStartRecording = !mStartRecording;

            }

        };

        public RecordButton(Context ctx) {

            super(ctx);

            setText("Start recording");

            setOnClickListener(clicker);

        }

    }

    class PlayButton extends Button {

        boolean mStartPlaying = true;

        OnClickListener clicker = new OnClickListener() {

            public void onClick(View v) {

                onPlay(mStartPlaying);

                if (mStartPlaying) {

                    setText("Stop playing");

                } else {

                    setText("Start playing");

                }

                mStartPlaying = !mStartPlaying;

            }

        };

        public PlayButton(Context ctx) {

            super(ctx);

            setText("Start playing");

            setOnClickListener(clicker);

        }

    }

    public AudioRecordTest() {

        mFileName = Environment.getExternalStorageDirectory().getAbsolutePath();

        mFileName += "/audiorecordtest.3gp";

    }

    @Override

    public void onCreate(Bundle icicle) {

        super.onCreate(icicle);

        LinearLayout ll = new LinearLayout(this);

        mRecordButton = new RecordButton(this);

        ll.addView(mRecordButton,

            new LinearLayout.LayoutParams(

                ViewGroup.LayoutParams.WRAP_CONTENT,

                ViewGroup.LayoutParams.WRAP_CONTENT,

                0));

        mPlayButton = new PlayButton(this);

        ll.addView(mPlayButton,

            new LinearLayout.LayoutParams(

                ViewGroup.LayoutParams.WRAP_CONTENT,

                ViewGroup.LayoutParams.WRAP_CONTENT,

                0));

        setContentView(ll);

    }

    @Override

    public void onPause() {

        super.onPause();

        if (mRecorder != null) {

            mRecorder.release();

            mRecorder = null;

        }

        if (mPlayer != null) {

            mPlayer.release();

            mPlayer = null;

        }

    }

}

[/shcode]

از این سایت گرفتم چون ف ی ل ت ر بود کدشو گذاشتم

http://developer.android.com/guide/topics/media/audio-capture.html

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

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...