音频录制 小实例
2016-08-01 14:54
106 查看
首先设置相关权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.moliying.a62_mediarecorder.MainActivity"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="开始录制" android:onClick="startClick" android:id="@+id/button" android:layout_alignParentTop="true" android:layout_alignParentStart="true" android:layout_alignParentEnd="true"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="停止录制" android:onClick="stopClick" android:id="@+id/button2" android:layout_below="@+id/button" android:layout_alignParentStart="true" android:layout_alignParentEnd="true"/> </RelativeLayout>
package com.moliying.a62_mediarecorder; import android.media.MediaRecorder; import android.os.Environment; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import java.io.IOException; public class MainActivity extends AppCompatActivity { private MediaRecorder mr; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mr = new MediaRecorder(); } public void init(){ mr.reset(); mr.setAudioSource(MediaRecorder.AudioSource.MIC);//设置音源 mr.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);//设置输出的格式为mp3 mr.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); String path = Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_MUSIC)+"/"+System.currentTimeMillis()+".mp3"; mr.setOutputFile(path); try { mr.prepare(); } catch (IOException e) { e.printStackTrace(); } } public void startClick(View view){ init(); mr.start(); } public void stopClick(View view){ mr.stop(); } @Override protected void onDestroy() { super.onDestroy(); if(mr!=null) mr.release(); } }
第二个小实例 代码稍微有点差别 更严谨些
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.moliying.a60_media.RecorderActivity"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="start" android:id="@+id/button7_start" android:layout_alignParentTop="true" android:layout_alignParentStart="true" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="stop" android:id="@+id/button8_stop" android:layout_below="@+id/button7_start" android:layout_alignParentStart="true" /> </RelativeLayout>
package com.moliying.a60_media; import android.media.MediaRecorder; import android.os.Environment; import android.provider.Settings; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import java.io.IOException; public class RecorderActivity extends AppCompatActivity implements View.OnClickListener { private MediaRecorder mr; private Button button_start; private Button button_stop; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_recorder); button_start = (Button) findViewById(R.id.button7_start); button_stop = (Button) findViewById(R.id.button8_stop); button_start.setOnClickListener(this); button_stop.setOnClickListener(this); button_stop.setEnabled(false); mr = new MediaRecorder(); } private void init(){ mr.reset(); mr.setAudioSource(MediaRecorder.AudioSource.MIC);//设置音源 mr.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);//文件格式 mr.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);//文件编码 String path = Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_MUSIC)+"/"+ System.currentTimeMillis()+".mp3"; mr.setOutputFile(path); try { mr.prepare(); } catch (IOException e) { e.printStackTrace(); } } @Override public void onClick(View v) { switch (v.getId()){ case R.id.button7_start: init(); mr.start(); button_stop.setEnabled(true); button_start.setEnabled(false); break; case R.id.button8_stop: mr.stop(); button_stop.setEnabled(false); button_start.setEnabled(true); break; } } @Override protected void onDestroy() { super.onDestroy(); if(mr!=null)mr.release(); } }
相关文章推荐
- Andorid 实例源码:音频录制
- 音视频开发——iOS音频录制(六)
- Windows Phone 8初学者开发—第20部分:录制Wav音频文件
- Android仿微信、录制音频并发送功能
- 音频播放、录音、视频播放、拍照、视频录制
- 第15讲 音频录制
- iOS 通过(lame)将录制音频转换成Mp3
- android录制音频通过网络传输到服务器播放
- [Android实例] 横扫一切android面试,视频录制破解android面试
- Android录制音频的三种方式
- H5通过浏览器录制视屏或音频
- Android多媒体学习七:调用Android自带的音频录制程序,实现录制
- iOS开发系列--音频播放、录音、视频播放、拍照、视频录制
- 使用Unity中Microphone类进行用户自由时长音频录制
- Android手机录制音频
- Linux下OSS音频录制和播放
- iOS 9音频应用播放音频之第一个ios9音频实例
- iOS使用Audio Queue Services 播放和录制音频
- 使用Audio Queue Services 播放和录制音频
- MFC录制音频和播放音频