六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 52|回复: 0

简单的录音保存

[复制链接]

升级  82%

292

主题

292

主题

292

主题

进士

Rank: 4

积分
910
 楼主| 发表于 2013-1-15 02:30:29 | 显示全部楼层 |阅读模式
import java.io.File;import android.app.Activity;import android.content.ContentResolver;import android.content.ContentValues;import android.content.Intent;import android.media.MediaRecorder;import android.net.Uri;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import android.provider.MediaStore.MediaColumns;import android.util.Log;import android.view.View;import android.widget.Button;/** * This is main class which shows how to capture/record audio * @author The Developer's Info * */public class Main extends Activity {private MediaRecorder mediaRecorder;private File file = null;static final String PREFIX = "record";static final String EXTENSION = ".3gpp";@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);mediaRecorder = new MediaRecorder();Button startRecording = (Button) findViewById(R.id.startBtn);Button stopRecording = (Button) findViewById(R.id.stopBtn);startRecording.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {try {startRecording();} catch (Exception e) {e.printStackTrace();}}});stopRecording.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {stopRecording();saveToDB();}});}/** * This method starts recording process * @throws Exception */private void startRecording() throws Exception {mediaRecorder = new MediaRecorder();mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);if (file == null) {File rootDir = Environment.getExternalStorageDirectory();file = File.createTempFile(PREFIX, EXTENSION, rootDir);}mediaRecorder.setOutputFile(file.getAbsolutePath());mediaRecorder.prepare();mediaRecorder.start();}/** * This method stops recording */private void stopRecording() {mediaRecorder.stop();mediaRecorder.release();}/** * This method sets all metadata for audio file */private void saveToDB() {ContentValues values = new ContentValues(3);long current = System.currentTimeMillis();values.put(MediaColumns.TITLE, "My Audio record");values.put(MediaColumns.DATE_ADDED, (int) (current / 1000));values.put(MediaColumns.MIME_TYPE, "audio/mp3");values.put(MediaColumns.DATA, file.getAbsolutePath());ContentResolver contentResolver = getContentResolver();Uri base = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;Uri newUri = contentResolver.insert(base, values);sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, newUri));}} 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表