knightjsh 2022-05-01 02:55 采纳率: 100%
浏览 9
已结题

Android-4.4 实现录音功能报错

Layout布局文件
<?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:text="录音"
        android:textSize="20sp"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"/>
    <LinearLayout
        android:layout_width="fill_parent" android:layout_height="wrap_content">
        <Button
            android:id="@+id/startBtn1"
            android:text="开始" 
            android:layout_weight="1"
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content"/>
        <Button
            android:id="@+id/stopBtn1"
            android:text="停止"
            android:enabled="false"
            android:layout_weight="1"
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content"/>
    </LinearLayout>
    <SurfaceView
        android:id="@+id/view"
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" />
</LinearLayout>
main文件:
package com.example.coremv;
import java.text.SimpleDateFormat;
import java.util.Date;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.app.Activity;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

    MediaRecorder recorder1;//录音的
    Button startBtn1;
    Button stopBtn1;
    
    MediaRecorder recorder2; //录像的
    Button startBtn2;
    Button stopBtn2;
    
    SurfaceView view;//录像时的预览视图
    SurfaceHolder holder;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);   
        initAudio();
    }   
    
    void initAudio(){
        recorder1 = new MediaRecorder();
        startBtn1 =(Button)findViewById(R.id.startBtn1);
        stopBtn1 =(Button)findViewById(R.id.stopBtn1);
        //音频源是麦克风
        recorder1.setAudioSource(MediaRecorder.AudioSource.MIC);//输出格式THREE_GPP
        recorder1.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);//编码格式AMR_NB
        recorder1.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);//输出文件路径
        recorder1.setOutputFile("/sdcard/"
        + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())+".3gp");
        
        startBtn1.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick (View v){
            try {
                recorder1.prepare();
                recorder1.start();
                startBtn1.setEnabled(false);
                stopBtn1.setEnabled(true);
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    });
        
        stopBtn1.setOnClickListener (new OnClickListener() {
            @Override
            public void onClick (View v){
                try{
                    recorder1.stop();
                    recorder1.release();
                    startBtn1.setEnabled(true);
                    stopBtn1.setEnabled(false);
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
        });
    }
}
运行时闪退,模拟器报错 unfortunately ,coreMV has stopped。

使用的开发环境是adt-bundle-windows-x86-20131030,LogCat报错如下:

img

展开全部

  • 写回答

1条回答 默认 最新

  • 不会写代码的猴子 Android领域优质创作者 2022-05-01 13:22
    关注

    你申请录音权限了吗?

    img

    报错原因看起来像是你没有申请麦克风权限

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 9月6日
  • 已采纳回答 8月30日
  • 创建了问题 5月1日

悬赏问题

  • ¥100 有能够实现人机模式的c/c++代码,有图片背景等,能够直接进行游戏
  • ¥20 校园网认证openwrt插件
  • ¥15 以AT89C51单片机芯片为核心来制作一个简易计算器,外部由4*4矩阵键盘和一个LCD1602字符型液晶显示屏构成,内部由一块AT89C51单片机构成,通过软件编程可实现简单加减乘除。
  • ¥15 某东JD算法逆向算法
  • ¥15 求GCMS辅导数据分析
  • ¥30 SD中的一段Unet下采样代码其中的resnet是谁跟谁进行残差连接
  • ¥15 Unet采样阶段的res_samples问题
  • ¥60 Python+pygame坦克大战游戏开发实验报告
  • ¥15 R语言regionNames()和demomap()无法选中中文地区的问题
  • ¥15 Open GL ES 的使用
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部