Android记录设置按钮出错

Android记录设置按钮出错,android,Android,我正在尝试学习如何使用Android的录制和播放功能。 通过Google Android record example(),我想更改布局和按钮。 但在我重置了所有这些之后,编程就不起作用了,我不知道发生了什么。 请告知 import android.app.Activity; import android.content.Context; import android.media.MediaPlayer; import android.media.MediaRecorder; import an

我正在尝试学习如何使用Android的录制和播放功能。 通过Google Android record example(),我想更改布局和按钮。 但在我重置了所有这些之后,编程就不起作用了,我不知道发生了什么。 请告知

import android.app.Activity;
import android.content.Context;
import android.media.MediaPlayer;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.widget.Button;

import java.io.IOException;


public class ArecordActivity extends Activity{
private static final String LOG_TAG = "AudioRecordTest";
private static String mFileName = null;

private RecordButton btn_record = null;
private MediaRecorder mRecorder = null;

private PlayButton   btn_play = 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 ArecordActivity() {
    mFileName = Environment.getExternalStorageDirectory().getAbsolutePath();
    mFileName += "/audiorecordtest.3gp";
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_arecord);
    btn_record = new RecordButton(this);
    btn_record.findViewById(R.id.button_1);
    btn_play = new PlayButton(this);
    btn_play.findViewById(R.id.button_2);

}

@Override
public void onPause() {
    super.onPause();
    if (mRecorder != null) {
        mRecorder.release();
        mRecorder = null;
    }

    if (mPlayer != null) {
        mPlayer.release();
        mPlayer = null;
    }
}

你能更详细地说明什么东西不符合预期吗?在进行了什么样的精确更改后,它停止了工作?参考Google Android示例(),我已经更改了Layerout和按钮,它们在创建时就已经停止了。非常感谢你。我点击按钮后,程序运行时功能不工作。非常感谢。我建议查看更多基本信息以了解视图使用情况(如)。在您的代码中,视图的使用是完全错误的。您能否更详细地说明哪些不符合预期?在进行了什么样的精确更改后,它停止了工作?参考Google Android示例(),我已经更改了Layerout和按钮,它们在创建时就已经停止了。非常感谢你。我点击按钮后,程序运行时功能不工作。非常感谢。我建议查看更多基本信息以了解视图使用情况(如)。在代码中,视图的用法是完全错误的。