1.代码:
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.media.MediaRecorder;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.view.Display;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
public class Test extends Activity {
/** Called when the activity is first created. */
private ListView mListView = null;
private Button btn_start = null;
private Button btn_stop = null;
private MediaRecorder mMediaRecorder = null;
private List<String> rec = new ArrayList<String>();// ���¼���ļ�
private File home = null;
private File path = null;
private String temp = "recaudio_";// ��ʱ�ļ�ǰ
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mListView = (ListView) this.findViewById(R.id.ListView01);
btn_start = (Button) this.findViewById(R.id.Button01);
btn_stop = (Button) this.findViewById(R.id.Button02);
// �Ƿ����SD��
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
home = Environment.getExternalStorageDirectory();
MusicList();
} else {
Toast.makeText(this, "���Ȳ���SD��", Toast.LENGTH_LONG).show();
return;
}
btn_start.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
try {
// ����¼����ʱ�ļ�
path = File.createTempFile(temp, ".3gp", home);
setTitle("==" + path.getAbsolutePath());
mMediaRecorder = new MediaRecorder();
mMediaRecorder
.setAudioSource(MediaRecorder.AudioSource.MIC);// ���������Դ����˷�
mMediaRecorder
.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);// ���ø�ʽ
mMediaRecorder
.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mMediaRecorder.setOutputFile(path.getAbsolutePath());// ��������ļ�·��
mMediaRecorder.prepare();
mMediaRecorder.start();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
btn_stop.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
mMediaRecorder.stop();
mMediaRecorder.release();
mMediaRecorder = null;
MusicList();
}
});
mListView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
String path = home + File.separator + rec.get(arg2);
File f = new File(path);
PlayMusic(f);
}
});
}
/**
* ��ʾ�б�
*/
public void MusicList() {
File[] f = home.listFiles(new MusicFilter());
rec.clear();
for (int i = 0; i < f.length; i++) {
File file = f[i];
rec.add(file.getName());
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, rec);
mListView.setAdapter(adapter);
}
/**
* ����¼���ļ�
*
* @param file
*/
public void PlayMusic(File file) {
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "audio");
this.startActivity(intent);
}
class MusicFilter implements FilenameFilter {
public boolean accept(File dir, String filename) {
// TODO Auto-generated method stub
return (filename.endsWith(".3gp"));
}
}
}
2.main.xml文件
<?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"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="开始"
android:layout_weight="1"
android:id="@+id/Button01"
>
</Button>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="结束"
android:layout_weight="1"
android:id="@+id/Button02" >
</Button>
</LinearLayout>
<ListView android:layout_height="wrap_content"
android:id="@+id/ListView01"
android:layout_width="fill_parent">
</ListView>
</LinearLayout>
分享到:
相关推荐
在本场景中,我们关注的是如何使用MediaRecorder录制视频并将其通过Socket发送到其他设备或服务器。以下是对这一主题的详细阐述: 1. **Android MediaRecorder**: - **初始化**:MediaRecorder实例化后,需要进行...
在本例中,"MediaRecorder录制视频.rar"是一个压缩包,包含了一个完整的Android项目,演示了如何使用MediaRecorder录制视频。 MediaRecorder的使用步骤通常分为以下几个阶段: 1. **初始化**: 首先,需要创建一个...
总之,MediaRecorder是Android系统中实现视频录制的关键组件,通过合理的配置和使用,我们可以轻松地实现在移动设备上录制并压缩视频的功能。同时,掌握编码解码的原理和参数调整对于优化录制质量和节省存储空间至关...
在Android开发中,`MediaRecorder` 是一个非常重要的类,用于处理多媒体数据的录制,而声音录制和播放是其中常见的应用场景。本篇文章将深入探讨如何使用`MediaRecorder`进行语音录制,并结合`MediaPlayer`实现播放...
通过以上步骤,我们可以实现一个完整的Android应用程序,能够录制视频音频并将其存储到SD卡,同时以列表形式显示并点击播放。这个实例涵盖了Android多媒体处理的核心知识,对于理解和实践Android应用开发具有很高的...
为了在Android应用中录制音频,Android提供了MediaRecorder类,使用MediaRecorder录制音频的过程很简单,步骤如下: Step1:创建MediaRecorder对象; Step2:调用MediaRecorder对象的setAudioSource()方法设置声音...
在Android平台上,MediaRecorder是一个非常重要的工具类,用于录制多媒体数据,如视频和音频。它提供了集成的功能,允许开发者在应用程序中轻松实现媒体记录功能。本文将深入探讨如何使用MediaRecorder来录制视频和...
`MediaRecorder`是JavaScript中的一个关键组件,用于实现浏览器内的媒体录制,尤其是在WebRTC(Real-Time Communication)环境中。这个工具允许开发者捕获用户的音频、视频流,并将其保存为本地文件。现在,我们深入...
例子引用isoviewer-1.0-RC-27.jar库,实现MediaRecorder录制视频的暂停与继续录制 ,demo中使用的是竖屏(4:3)录制,解决了竖屏时预览横向显示,同时,录制成功之后,写了一个SurfaceView进行播放。
SurfaceView是Android中用于显示动态图像的控件,而MediaRecorder需要与SurfaceView关联的SurfaceHolder,以便将录制的视频内容显示在屏幕上。 文档中提到了几个关键的Android类和接口,如Activity、SurfaceHolder...
MediaRecorder是一个Android SDK中的类,它负责设置和管理多媒体数据的录制过程。它可以处理音频和视频源,编码格式,以及输出文件格式。在使用MediaRecorder之前,我们需要进行一系列的配置步骤,包括设置输入源、...
MediaRecorder是Android系统中用于音视频采集和录制的类,提供了一个通用的音视频录制解决方案。通过MediaRecorder,可以实现音频和视频的实时采集和录制。 二、音视频实时采集的主要思路 音视频实时采集的主要...
本项目标题提及的"MediaRecorder视频录制,后台视频录制源码",显然是一个在Android Studio环境中运行的示例应用,旨在教授开发者如何在后台进行视频录制。 首先,我们来看MediaRecorder的基本用法。创建...
1. **初始化MediaRecorder**:在服务的onCreate()方法中,你需要实例化MediaRecorder并设置录制参数。例如,你可以选择Surface作为视频源,麦克风作为音频源,设置视频编码为H.264,音频编码为AAC。 2. **准备和...
在Android开发中,`MediaRecorder` 是一个非常重要的类,用于录制音频、视频或混合媒体。这个`Android MediaRecorder Demo1` 是一个基础的录音应用示例,旨在帮助初学者了解如何使用`MediaRecorder` API。如果你是...
在Android平台上,音频录制是移动应用开发中的常见需求。本文将深入探讨如何使用`AudioRecord`和`MediaRecorder`这两个核心API来实现音频录制,特别是针对PCM和AAC这两种编码格式。 首先,我们要理解PCM( Pulse ...
1初始化MediaRecorder对象并设置必要的参数,比如音频源、视频源、输出文件格式等。 2.配置音频和视频的编码器,例如使用AMR NB或AMR WB作为音频编码器,使用MPEG4或H.264作为视频编码器。 3.设置录制视频的尺寸和...
首先,`AudioRecord`是Android提供的一个低级API,允许开发者直接访问音频硬件来录制声音。它提供了高度的自定义性,可以控制采样率、通道数、位深度等参数。使用`AudioRecord`进行录音的基本步骤如下: 1. 初始化`...