【问题标题】:Audio recording app quitting with error "Unfortunately TActivity has stopped"录音应用程序退出并出现错误“不幸的是 TActivity 已停止”
【发布时间】:2015-07-14 07:55:03
【问题描述】:

我有以下代码,应该在点击缓冲麦克风输入并将其设置为视图文本

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.util.Log;
import android.media.AudioFormat;
import android.media.AudioRecord;
import android.media.MediaRecorder;
import android.view.View.OnClickListener;

public class TActivity extends Activity
{
    TextView text;
    Button startButton,stopButton;
    byte[] buffer;
    AudioRecord recorder;

    int sampleRate = 44100;
    int channelConfig = AudioFormat.CHANNEL_CONFIGURATION_MONO;    
    int audioFormat = AudioFormat.ENCODING_PCM_16BIT;       
    int minBufSize = AudioRecord.getMinBufferSize(sampleRate, channelConfig, audioFormat);
    boolean status = true;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        text = (TextView) findViewById(R.id.txt);
        startButton = (Button) findViewById (R.id.start_button);
        stopButton = (Button) findViewById (R.id.stop_button);

        minBufSize += 2048;

        startButton.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                status = false;
                recorder.release();
            }

        });

        stopButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                status = true;

                byte[] buffer = new byte[minBufSize];
                recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,sampleRate,channelConfig,audioFormat,minBufSize*10);
                recorder.startRecording();

                while(status == true) {
                    minBufSize = recorder.read(buffer, 0, buffer.length);
                    text.setText(minBufSize);
                }
            }
        });
    }
}

XML 布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TextView
        android:id="@+id/txt"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Hello World">
    </TextView>

    <Button
    android:id="@+id/start_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView1"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="130dp"
    android:text="Start" >
    </Button>

    <Button
    android:id="@+id/stop_button"
    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" >
    </Button>

</LinearLayout>

权限:&lt;uses-permission android:name="android.permission.RECORD_AUDIO" /&gt;

我收到以下错误

http://pastebin.com/RH6ARTeS

我的代码很简单,不知道有什么问题..那里有什么问题?如果事实证明这很复杂..您知道一种从麦克风输入设置视图文本的方法吗?谢谢

【问题讨论】:

  • 这些是编译警告,表明您的清单(或build.gradle 文件)缺少minSdkVersion。使用 LogCat 检查与运行时崩溃相关的 Java 堆栈跟踪:stackoverflow.com/questions/23353173/…
  • @CommonsWare 哦,如果它的警告我现在可以忽略它们......我会看看 logcat 谢谢 :)

标签: android audio-streaming audio-recording microphone


【解决方案1】:

要摆脱 API 级别要求编译警告,您可以在 AndroidManifest.xml 中更改此行

<uses-sdk android:minSdkVersion="3" />

恐怕如果没有运行时错误的调试输出/堆栈跟踪,我们无法告诉您更多信息......

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多