音频录制

 
  1. <!--音频录制权限-->       
  2.  <uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>     
  3. <!--视频录制权限-->     
  4.      <uses-permission android:name="android.permission.CAMERA"/>              
  5.      <uses-permission android:name="android.permission.RECORD_AUDIO"/>              
  6.      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>      

视频录制
  1. <pre name="code" class="java">package cn.media;     
  2.      
  3. import java.io.File;     
  4. import java.io.IOException;     
  5.      
  6. import android.app.Activity;     
  7. import android.media.MediaRecorder;     
  8. import android.os.Bundle;     
  9. import android.os.Environment;     
  10. import android.view.SurfaceHolder;     
  11. import android.view.SurfaceView;     
  12. import android.view.View;     
  13. import android.view.View.OnClickListener;     
  14. import android.widget.Button;     
  15.      
  16. //视频录制:</pre><pre name="code" class="java">public class MediaConnection extends Activity {     
  17.     private File myRecAudioFile;     
  18.     private SurfaceView mSurfaceView;     
  19.     private SurfaceHolder mSurfaceHolder;     
  20.     private Button buttonStart;     
  21.     private Button buttonStop;     
  22.     private File dir;     
  23.     private MediaRecorder recorder;     
  24.      
  25.     @Override     
  26.     public void onCreate(Bundle savedInstanceState) {     
  27.         super.onCreate(savedInstanceState);     
  28.         setContentView(R.layout.video);     
  29.         mSurfaceView = (SurfaceView) findViewById(R.id.videoView);     
  30.         mSurfaceHolder = mSurfaceView.getHolder();     
  31.      
  32.         mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);     
  33.         buttonStart = (Button) findViewById(R.id.start);     
  34.         buttonStop = (Button) findViewById(R.id.stop);     
  35.         File defaultDir = Environment.getExternalStorageDirectory();     
  36.         String path = defaultDir.getAbsolutePath() + File.separator + "V"     
  37.                 + File.separator;     
  38.         // 创建文件夹存放视频      
  39.         dir = new File(path);     
  40.         if (!dir.exists()) {     
  41.             dir.mkdir();     
  42.         }     
  43.         recorder = new MediaRecorder();     
  44.         buttonStart.setOnClickListener(new OnClickListener() {     
  45.             @Override     
  46.             public void onClick(View v) {     
  47.                 recorder();     
  48.             }     
  49.         });     
  50.      
  51.         buttonStop.setOnClickListener(new OnClickListener() {     
  52.             @Override     
  53.             public void onClick(View v) {     
  54.                 recorder.stop();     
  55.                 recorder.reset();     
  56.                 recorder.release();     
  57.                 recorder = null;     
  58.             }     
  59.         });     
  60.     }     
  61.      
  62.     public void recorder() {     
  63.         try {     
  64.             myRecAudioFile = File.createTempFile("video"".3gp", dir);// 创建临时文件     
  65.             recorder.setPreviewDisplay(mSurfaceHolder.getSurface());// 预览     
  66.      
  67.             recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);// 视频源     
  68.             recorder.setAudioSource(MediaRecorder.AudioSource.MIC);     
  69.             // 录音源为麦克风      
  70.      
  71.             recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);     
  72.             // 输出格式为3gp      
  73.             recorder.setVideoSize(800480);// 视频尺寸     
  74.             recorder.setVideoFrameRate(15);// 视频帧频率     
  75.             recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);// 视频编码     
  76.             recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);     
  77.             // 音频编码      
  78.             recorder.setMaxDuration(10000);// 最大期限     
  79.             recorder.setOutputFile(myRecAudioFile.getAbsolutePath());     
  80.             // 保存路径      
  81.             recorder.prepare();     
  82.             recorder.start();     
  83.         } catch (IOException e) {     
  84.             e.printStackTrace();     
  85.         }     
  86.     }     
  87. }     
  88. </pre>      

音频录制:

  1. package cn.media;     
  2.      
  3. import java.io.File;     
  4. import java.io.IOException;     
  5.      
  6. import android.app.Activity;     
  7. import android.content.ContentResolver;     
  8. import android.content.ContentValues;     
  9. import android.content.Intent;     
  10. import android.media.MediaRecorder;     
  11. import android.net.Uri;     
  12. import android.os.Environment;     
  13. import android.provider.MediaStore;     
  14. import android.util.Log;     
  15. /**   
  16.  * 音频录制   
  17.  * @author Administrator   
  18.  *   
  19.  */     
  20. public class MyMediaRecoder extends Activity {     
  21.      
  22.     MediaRecorder mrec;     
  23.     File audiofile=null;     
  24.     private static final String TAG="SoundRecordingDemo";     
  25.     protected void startRecording() throws IOException     
  26.     {     
  27. //      设置音频源      
  28.         mrec.setAudioSource(MediaRecorder.AudioSource.MIC);     
  29. //      设置文件输出格式      
  30.         mrec.setOutputFormat(MediaRecorder.AudioEncoder.AMR_NB);     
  31.         if(audiofile==null){     
  32.             File sampleDir=Environment.getExternalStorageDirectory();     
  33.             try{     
  34.                 audiofile=File.createTempFile("ibm"".3gp",sampleDir);     
  35.             }     
  36.             catch(IOException e){     
  37.                 Log.e(TAG,"sdcard access error");     
  38.                 return;     
  39.             }     
  40.         }     
  41. //      文件输出路径      
  42.         mrec.setOutputFile(audiofile.getAbsolutePath());     
  43.              
  44.         mrec.prepare();     
  45.         mrec.start();     
  46.     }     
  47.     protected void stopRecording(){     
  48.         mrec.stop();     
  49.         mrec.release();     
  50.         processAudiofile(audiofile);     
  51.     }     
  52.     protected void processAudiofile(File audiofile){     
  53.         ContentValues values=new ContentValues(3);     
  54.         long current=System.currentTimeMillis();     
  55.         values.put(MediaStore.Audio.Media.TITLE,"audio"+audiofile.getName());     
  56.         values.put(MediaStore.Audio.Media.TITLE, "audio" + audiofile.getName());      
  57.         values.put(MediaStore.Audio.Media.DATE_ADDED, (int) (current / 1000));      
  58.         values.put(MediaStore.Audio.Media.MIME_TYPE, "audio/3gpp");      
  59.         values.put(MediaStore.Audio.Media.DATA, audiofile.getAbsolutePath());      
  60.         ContentResolver contentResolver=getContentResolver();     
  61.         Uri base=MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;     
  62.         Uri newUri=contentResolver.insert(base,values);     
  63.         sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,newUri));     
  64.     }     
  65. }     

调用系统录音机:

  1. Intent intent=new Intent(android.content.Intent.ACTION_VIEW);     
  2.       File sdcardPath=Environment.getExternalStorageDirectory();     
  3.       Uri audioFileUri=Uri.fromFile(sdcardPath);     
  4.       intent.setDataAndType(audioFileUri,"audio/mp3");     
  5.       startActivity(intent);    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值