MediaRecorder录音
来源:互联网 发布:淘宝推广培训班 编辑:程序博客网 时间:2024/05/09 12:50
1.Java代码
package com.gst.user.application;import android.app.AlarmManager;import android.app.PendingIntent;import android.content.Context;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.media.AudioRecord;import android.media.MediaPlayer;import android.media.MediaRecorder;import android.net.Uri;import android.os.AsyncTask;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.os.SystemClock;import android.support.design.widget.FloatingActionButton;import android.support.design.widget.Snackbar;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.Toolbar;import android.view.View;import android.widget.Button;import android.widget.Chronometer;import android.widget.ImageView;import android.widget.ProgressBar;import android.widget.TextView;import android.widget.Toast;import org.androidpn.client.ServiceManager;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.net.URL;import java.net.URLConnection;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Timer;import java.util.TimerTask;public class TempActivity extends AppCompatActivity implements View.OnClickListener{ Button button_record; Button button_stop; Button button_play; Button button_delete; MediaPlayer mediaPlayer; File recordAudioFile; MediaRecorder mediaRecorder; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_temp); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) .setAction("Action", null).show(); } }); button_record=(Button)findViewById(R.id.button3); button_stop=(Button)findViewById(R.id.button4); button_play=(Button)findViewById(R.id.button5); button_delete=(Button)findViewById(R.id.button6); button_play.setOnClickListener(this); button_record.setOnClickListener(this); button_stop.setOnClickListener(this); button_delete.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.button3: //临时文件名 try { recordAudioFile=File.createTempFile("audio",".amr"); } catch (IOException e) { e.printStackTrace(); } mediaRecorder=new MediaRecorder(); //设置音频来源 mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); //设置输出格式 mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); //设置编码方式 mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT); //设置输出文件路径 mediaRecorder.setOutputFile(recordAudioFile.getAbsolutePath()); try { mediaRecorder.prepare(); } catch (IOException e) { e.printStackTrace(); } mediaRecorder.start(); Toast.makeText(this, "开始录音.", Toast.LENGTH_SHORT).show(); break; case R.id.button4: if (mediaRecorder!=null){ mediaRecorder.stop(); mediaRecorder.release(); mediaRecorder=null; Toast.makeText(this, "停止录音.", Toast.LENGTH_LONG).show(); } break; case R.id.button5: mediaPlayer=new MediaPlayer(); try { mediaPlayer.setDataSource(recordAudioFile.getAbsolutePath().toString()); mediaPlayer.prepare(); } catch (IOException e) { e.printStackTrace(); } mediaPlayer.start(); break; case R.id.button6: if (recordAudioFile.delete()){ Toast.makeText(this, "文件删除成功", Toast.LENGTH_LONG).show(); } break; default: break; } }}2.布局文件
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:showIn="@layout/activity_temp" tools:context="com.gst.user.application.TempActivity"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="录音" android:id="@+id/button3" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="停止" android:id="@+id/button4" android:layout_below="@+id/button3" android:layout_centerHorizontal="true" android:layout_marginTop="54dp" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="播放" android:id="@+id/button5" android:layout_below="@+id/button4" android:layout_centerHorizontal="true" android:layout_marginTop="52dp" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="删除" android:id="@+id/button6" android:layout_marginTop="51dp" android:layout_below="@+id/button5" android:layout_alignLeft="@+id/button5" android:layout_alignStart="@+id/button5" /></RelativeLayout>
0 0
- MediaRecorder录音
- Mediarecorder录音
- MediaRecorder录音
- MediaRecorder 录音
- Android--MediaRecorder录音录像
- android MediaRecorder录音
- Android MediaRecorder录音
- 使用MediaRecorder保存录音
- Android MediaRecorder 录音
- 录音(MediaRecorder)与播放
- Android录音--AudioRecord、MediaRecorder
- 使用MediaRecorder进行录音
- MediaRecorder重复录音问题
- Android录音--AudioRecord、MediaRecorder
- Android录音--AudioRecord、MediaRecorder
- MediaRecorder(录音)的用法
- MediaRecorder录音,MediaPlayer播放
- android MediaRecorder录音详解
- Windows CE下使用共享内存实现进程间数据交换
- Eclipse,到了说再见的时候了——Android Studio最全解析
- shiro默认拦截器
- 前端最重要的--莫过于细节
- UNIX环境高级编程笔记1-sysconf、pathconf和fpathconf函数
- MediaRecorder录音
- 海思SDK包中make menuconfig的记录
- C语言还有不定参数
- cocos2d-x 3.9版本使用Scale9Sprite的头文件设置
- C语言中可变参数的用法
- 非类型模版参数
- 惠普中国CEO孙振耀退休感言---阿冬专栏
- C语言可变参数函数的使用方法讲解
- NoSql之redis学习(二)