Android中有自带的音频录制程序,我们可以通过指定一个Action为MediaStore.Audio.Media.RECORD_SOUND_ACTION的Intent来
启动它就可以了。然后在onActivityResult()方法中,获取Intent的Data,就是录制的音频对应的URI。
代码:
package demo.camera;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Toast;
/**
* 被实例演示如何调用Android自带的应用来完成Audio的录入
* 其实很简单,我们需要指定一个MediaStore.Audio.Media.RECORD_SOUND_ACTION的Action来启动就可以
* 返回的Data数据就是我们录制的音频的URI了
*
* 通过上面这种方式,灵活性不够高,我们可以利用MediaRecorder类来实现自己的音频录制程序
* MediaRecorder既可以用来录制音频,也可以用来录制视频
* 创建了一个MediaRecorder实例后,需要调用setAudioSource和setAudioEncoder来初始化
* 通常情况下,在准备录制前,我们还需要调用setOutputFormat()方法来决定使用的音频格式,同时调用
* setOutputFile()来指定存放录制内容的文件
*
* 这几个方法的调用顺序是:setAudioSource,setOutputFormat,setAudioEncoder,setOutputFile
*
*
*
* @author Administrator
*
*/
public class AudioRecordDemo extends Activity {
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.audio_record);
}
public void onActivityResult(int requestCode, int resultCode, Intent data){
//super.onActivityResult(requestCode, resultCode, data);
//这里我们就可以获取到刚刚录制的音频的Uri,可以进行播放等操作,这里显示返回的Uri
if(resultCode == RESULT_OK){
Uri audioPath = data.getData();
Toast.makeText(this, audioPath.toString(), Toast.LENGTH_LONG).show();
}
}
public void onClick(View v){
int id = v.getId();
switch(id){
case R.id.btn1:
//调用Android自带的音频录制应用
Intent intent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION);
startActivityForResult(intent, 0);
break;
case R.id.btn2:
//通过MediaRecorder类来实现自己的音频录制程序
Intent intent2 = new Intent();
intent2.setClass(this, MyAudioRecord.class);
startActivityForResult(intent2, 1);
break;
case R.id.btn3:
//通过AudioRecord类实现自己的音频录制程序
Intent intent3 = new Intent();
intent3.setClass(this, MyAudioRecord2.class);
startActivityForResult(intent3, 2);
break;
}
}
}
便以后学习和查询!
学习总结:
-
//Action是MediaStore.Audio.Media.RECORD_SOUND_ACTION
Intent intent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION);
startActivityForResult(intent, 0);
分享到:
相关推荐
这篇文档将深入解析如何在Android平台上使用代码来实现手机...总的来说,Android平台提供了丰富的API来处理音频录制和可视化,开发者可以根据需求定制自己的音频应用,无论是简单的录音机还是复杂的音频编辑工具。
本项目利用了Android自带的`MediaRecorder`类进行视频录制,并借助第三方库`mp4parser`来完成视频的分段处理和最终的MP4文件合成。以下是对这些知识点的详细说明: 1. **MediaRecorder**:这是Android SDK中的一个...
通过Intent调用Android系统自带Activity界面实现多媒体功能的例子,包括录制、选择、播放音视频,以及拍照、选择、查看照片。这种方式代码简单,运行稳定;但界面固定,不够灵活。系统自带Activity也包括从外部存储...
总结来说,实现“android视频录制预览网络播放”需要掌握 Android 的多媒体处理、网络通信以及 UI 设计等多个技能。MediaRecorder 和 Camera 用于录制和预览,VideoView 或 ExoPlayer 负责网络播放,而 UI 设计则...
- **核心应用程序**:Android自带了一套核心应用,如邮件客户端、日历、地图等,大部分由Java语言编写。开发者可以在此基础上进行扩展和定制,以满足特定需求。 - **应用框架**:Android的应用框架包含多个可复用...
作为开发者,我们也可以通过调用`Activity`的`takeScreenshot()`方法或`WindowManager`的`takeScreenshot()`方法来实现程序内的截图。 2. **自定义截屏**:如果你需要在特定条件下或者有特殊需求时进行截屏,可以...
资源内容涵盖了音频播放与录制、视频播放与录制、照片拍摄与显示等多个方面,详细介绍了如何通过Intent调用系统自带Activity实现多媒体功能,以及如何使用Android提供的多媒体相关类自行编写代码实现更灵活的界面和...
2. **音频录制与处理**:Android提供了AudioRecord类用于实现音频录制。源码中会包含如何设置音频源、采样率、通道数和位深度等参数。同时,可能还会涉及到音频格式转换,如从PCM数据转换为常见的MP3或AAC格式。 3....
在Android平台上,录制多种音频并将其合并为一个文件是一个常见的需求,这可能涉及到音视频编辑、游戏开发或者多媒体应用。本篇文章将详细讲解如何实现这一功能,并基于Android的API进行探讨。 首先,我们需要理解...
"android 自带案例代码"是官方为了教育和指导开发者而设计的一系列示例项目,它们覆盖了Android开发的多个关键领域,包括用户界面、数据存储、网络通信、多媒体处理等。下面,我们将深入探讨这些知识点。 首先,...
- **逻辑编写**:使用Java或Kotlin语言编写业务逻辑,调用系统提供的API实现功能需求。 - **调试测试**:利用IDE自带的调试工具和模拟器进行应用的调试和测试。 - **发布部署**:将应用打包为APK文件,上传至Google ...
综上所述,"录制视频上传服务器"项目涉及到Android多媒体API、网络编程、文件操作以及权限管理等多个方面,是移动开发中的重要技能。通过学习和实践,开发者可以实现高效、稳定且用户体验良好的视频上传功能。
总之,调用Android系统的照相、摄像和录音功能是通过Intent和系统服务来完成的。理解这些基本操作对于开发多媒体应用至关重要。通过实践和理解这些代码,初学者可以逐步掌握Android多媒体开发的关键技能。
根据提供的文件信息,“android考试资料”这一标题及“android 开发程序选择题以及答案帮助你考试”的描述,本文将围绕Android开发的基础知识点进行详细的解析,旨在帮助读者更好地理解和掌握相关概念,为考试做好...
是Android系统直接提供给我们的录制类,用于录制音频和视频的一个类,简单方便,不需要理会中间录制过程,结束录制后可以直接得到音频文件进行播放,录制的音频文件是经过压缩的,需要设置编码器,录制的音频文件...
- 多媒体库:支持音频、视频回放和录制,如MPEG4、MP3、AAC、AMR等格式。 - SGL:2D图形引擎。 - SSL:提供安全套接字层,支持数据通信。 - OpenGL ES 1.0:用于3D图形渲染。 - SQLite:关系数据库管理系统。 ...
- **模拟器与真机测试**:可以使用Android Studio自带的模拟器进行应用测试,也可以通过连接真机进行调试。 #### 3. 基础UI设计 - **布局管理器(Layouts)**:如LinearLayout、RelativeLayout等,用于组织界面元素。...
但是,直接使用Android自带的组件可能无法实现服务器推送,因此开发者通常需要借助第三方库,如libstreaming,这是一个用于Android的开源RTSP流服务器和客户端库。 1. 安装libstreaming库: - 将库导入项目中。 -...