- 浏览: 332248 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
xuanyuanxiaoxue:
...
Android - LayoutInflater -
柴兴博:
不错 多谢
Android 悬浮Activity并可拖动(访悬浮歌词) -
di1984HIT:
写的很好,我收藏一下。
java之动态代理模式(JDK和cglib) -
chinacssnj:
待测试,明天测,测试的结果发给大家
网络开发上传文件到服务器 -
fx_199182:
...
Android之MediaPlayer
我们使用录音功能,就得使用MediaRecorder类,这里实现一个简易的录音机,首先我们在界面上放置一个ListView来显示录音文件的列表,一个“开始”按钮,和一个“停止”按钮,当我们点击录音问价时就播放这段录音。
当点击“开始”按钮后就构建MediaRecorder对象,并且设置声音的来源(setAudioSource)、输出文件的格式(setOutputFormat)、音频文件的编码(setAudioEncoder)、输出文件的路径(setOutputFile)等;然后准备开始录音(prepare),开始录音(start).当点击“停止”按钮时,停止录音(stop),然后释放MediaRecorder对象(release),完成录音。
package com.yarin.android.Examples_07_05; import java.io.File; import java.io.FilenameFilter; import java.io.IOException; import java.util.ArrayList; import java.util.List; import android.app.ListActivity; import android.content.Intent; import android.media.MediaRecorder; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.view.View; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.Toast; public class Activity01 extends ListActivity { /* 按钮 */ private Button StartButton; private Button StopButton; /* 录制的音频文件 */ private File mRecAudioFile; private File mRecAudioPath; /* MediaRecorder对象 */ private MediaRecorder mMediaRecorder; /* 录音文件列表 */ private List<String> mMusicList = new ArrayList<String>(); /* 零时文件的前缀 */ private String strTempFile = "recaudio_"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); /* 取得按钮 */ StartButton = (Button) findViewById(R.id.StartButton); StopButton = (Button) findViewById(R.id.StopButton); /* 检测是否存在SD卡 */ if (Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) { /* 得到SD卡得路径 */ mRecAudioPath = Environment.getExternalStorageDirectory(); /* 更新所有录音文件到List中 */ musicList(); } else { Toast.makeText(Activity01.this, "没有SD卡", Toast.LENGTH_LONG).show(); } /* 开始按钮事件监听 */ StartButton.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View arg0) { try { /* 创建录音文件 */ mRecAudioFile = File.createTempFile(strTempFile, ".amr", mRecAudioPath); /* 实例化MediaRecorder对象 */ mMediaRecorder = new MediaRecorder(); /* 设置麦克风 */ mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); /* 设置输出文件的格式 */ mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT); /* 设置音频文件的编码 */ mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT); /* 设置输出文件的路径 */ mMediaRecorder.setOutputFile(mRecAudioFile.getAbsolutePath()); /* 准备 */ mMediaRecorder.prepare(); /* 开始 */ mMediaRecorder.start(); } catch (IOException e) { e.printStackTrace(); } } }); /* 停止按钮事件监听 */ StopButton.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub if (mRecAudioFile != null) { /* 停止录音 */ mMediaRecorder.stop(); /* 将录音文件添加到List中 */ mMusicList.add(mRecAudioFile.getName()); ArrayAdapter<String> musicList = new ArrayAdapter<String>(Activity01.this, R.layout.list, mMusicList); setListAdapter(musicList); /* 释放MediaRecorder */ mMediaRecorder.release(); mMediaRecorder = null; } } }); } /* 播放录音文件 */ private void playMusic(File file) { Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(android.content.Intent.ACTION_VIEW); /* 设置文件类型 */ intent.setDataAndType(Uri.fromFile(file), "audio"); startActivity(intent); } @Override /* 当我们点击列表时,播放被点击的音乐 */ protected void onListItemClick(ListView l, View v, int position, long id) { /* 得到被点击的文件 */ File playfile = new File(mRecAudioPath.getAbsolutePath() + File.separator + mMusicList.get(position)); /* 播放 */ playMusic(playfile); } /* 播放列表 */ public void musicList() { // 取得指定位置的文件设置显示到播放列表 File home = mRecAudioPath; if (home.listFiles(new MusicFilter()).length > 0) { for (File file : home.listFiles(new MusicFilter())) { mMusicList.add(file.getName()); } ArrayAdapter<String> musicList = new ArrayAdapter<String>(Activity01.this, R.layout.list, mMusicList); setListAdapter(musicList); } } } /* 过滤文件类型 */ class MusicFilter implements FilenameFilter { public boolean accept(File dir, String name) { return (name.endsWith(".amr")); } }
代码清单中通过“Environment.getExternalStorageDirectory()”可以取得SD卡路径。最后将录音保存带SD卡上,通过这个例子我们可以得出实现录音的一半步骤:
1:实例化MediaRecorder: mr=new MediaRecorder();
2:初始化mr: mr.setAudioSource(MIC)/setVideoSource(CAMERA),必须在配置DataSource之前调用;
3: 配置DataSource:设置输出文件格式/路径,编码器等;
4:准备录制:mr.prepare();
5:开始录制:mr.start();
6:停止录制: mr.stop();
7:释放资源:mr.release();
发表评论
-
Android中AsyncTask的简单用法
2012-01-13 16:00 1169在开发Android移动客户端的时候往往要使用多线程来进行操 ... -
Android应用的自动升级、更新模块的实现 .
2011-11-16 14:01 680http://www.eoeandroid.com/threa ... -
一个APK反编译利器Apktool
2011-11-16 13:54 1591一个APK反编译利器Apktool APK 本地化 ... -
自定义Android标题栏TitleBar布局
2011-11-14 14:13 1261很多网友发现自己Android程序的标题栏TitleBar区域 ... -
Android GPS获取地理位置 .
2011-11-14 14:11 863import android.app.Activity; i ... -
android ListView详解
2011-11-14 13:48 1064在android开发中ListView是比较常用的组件,它以列 ... -
Android之Content provider 详解
2011-11-14 13:35 2481Android是如何实现应用程序之间数据共享的?一个应用程序可 ... -
Android源码地址
2011-11-12 19:14 1056http://blog.csdn.net/ilittleone ... -
android之File
2011-11-11 22:39 20111:Fileservice package cn.itcas ... -
Android知识补漏
2011-11-09 22:33 01:AndroidManifiest.xml < ... -
深入剖析Android消息机制
2011-11-09 14:13 969在Android中,线程内部或者线程之间进行信息交互时经常会使 ... -
Android之Handler详解(四)
2011-11-09 14:00 1293d、自己创建新的线程,然后在新线程中创建Looper,主线程调 ... -
Android之Handler详解(三)
2011-11-09 13:58 1372c、将消息队列绑定到子线程上,主线程只管通过Handl ... -
Android之Handler详解(二)
2011-11-09 13:54 1670二:sendMessage版本的Handl ... -
Android之Handler详解(一)
2011-11-09 13:22 2295一个Handler允许你发送和处理消息(Message)以及 ... -
关于StartActivityForResult方法的使用
2011-10-31 17:11 1109根据方法名可知 这个方法是要得到启动后的Activity返回的 ... -
Android 悬浮Activity并可拖动(访悬浮歌词)
2011-10-24 16:23 2112天天动听, 这款Android手机上的音乐播放器,相信不少朋友 ... -
Android GWES
2011-10-24 16:13 1205第八章 Android GWES 8.1 View Syst ... -
Android系统服务-WindowManager
2011-10-24 16:10 1454WindowManager是Android中一个重要的服务 ... -
http通信
2011-10-15 17:31 1103HTTP(HyperText Transfer Proto ...
相关推荐
在Android开发中,创建一个能够显示声波动画的录音应用是一项有趣的挑战,它结合了多媒体处理、用户界面设计以及实时数据可视化。以下是对这个"Android录音的声波动画"项目的关键知识点的详细解释: 1. **Android ...
7.4 录制歌曲 7.5 相机设置 7.6 闹钟设置 7.7 铃声设置 7.8 小结 第8章 网络与通信 8.1 网络通信基础 8.1.1 无线网络技术 8.1.2 Android网络基础 8.2 HTTP通信 8.2.1 HttpURLConnection接口 8.2.2 HttpClient接口 ...
本项目名为“Android音频混合 -- K歌合成”,旨在实现类似唱吧K歌合成和Tom猫录音的效果,允许用户录制声音并与伴奏混合成.wav音频文件。下面将详细介绍这一技术及其相关知识点。 1. **音频处理基础**:在Android中...
7.4 录制歌曲 7.5 相机设置 7.6 闹钟设置 7.7 铃声设置 7.8 小结 第8章 网络与通信 8.1 网络通信基础 8.1.1 无线网络技术 8.1.2 Android网络基础 8.2 HTTP通信 8.2.1 HttpURLConnection接口 8.2.2 HttpClient接口 ...
7.4 录制歌曲 7.5 相机设置 7.6 闹钟设置 7.7 铃声设置 7.8 小结 第8章 网络与通信 8.1 网络通信基础 8.1.1 无线网络技术 8.1.2 Android网络基础 8.2 HTTP通信 8.2.1 HttpURLConnection接口 ...
在移动设备领域,Android操作系统占据主导地位,而音乐播放器作为用户日常使用的重要应用之一,其开发技术自然备受关注。本文将深入探讨基于Android平台的音乐播放器——D-XXPlayer的源码,旨在帮助开发者理解和学习...
Android系统提供了一个强大的多媒体框架,它支持音频、视频的播放和录制。核心组件包括Media Player类,用于播放音频和视频文件;MediaRecorder类,用于录制音频和视频;以及MediaPlayerService,用于在后台持续播放...
2. **系统背景**:随着Android手机的普及,记事本作为手机必备软件之一,其重要性不言而喻。它满足了用户快速记录和查询事件的需求,避免了因忘记重要事项而导致的不便。 3. **功能需求**: - **添加文本**:用户...
----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...
Android系统提供了Media Framework,它是一套完整的多媒体处理库,支持音频、视频的播放和录制。酷狗播放器源码中就利用了这些API来实现音乐的解码和播放。开发者可以通过分析源码,了解如何初始化MediaPlayer对象,...
7.4 录制歌曲 7.5 相机设置 7.6 闹钟设置 7.7 铃声设置 7.8 小结 第8章 网络与通信 8.1 网络通信基础 8.1.1 无线网络技术 8.1.2 Android网络基础 8.2 HTTP通信 8.2.1 HttpURLConnection接口 ...
在Android平台上,音频播放是移动应用开发中常见且重要的功能之一。本教程将重点讲解如何在Android中播放MP3格式的音频文件,包括在线音乐的获取与播放控制。以下是相关的关键知识点: 1. **Android Media ...
【Qt for Android 音乐播放器 QML 界面】是一个使用Qt框架开发的Android平台上的音乐播放器应用。QML(Qt Meta Language)是Qt提供的一种声明式语言,用于构建用户界面,它允许开发者以一种简洁、直观的方式定义UI...
【基于Android的音乐播放器源码】是一款专为Android平台设计的多媒体应用程序,它能够播放音频和视频文件,是Android开发者学习和理解移动应用开发,尤其是音乐播放功能实现的宝贵资源。这款源码提供了深入洞察...
10. **权限管理**:Android 6.0及以后版本需要在运行时请求权限,如读取存储权限以访问音乐文件,以及音频录制权限以播放音乐。 通过分析和学习"android音乐播放器Demo"中的代码,开发者可以逐步掌握上述技能,最终...
在Android开发中,"仿照网易云的听歌识曲"是一个常见的功能需求,它允许用户通过手机麦克风捕捉环境中的音乐片段,并识别出正在播放的歌曲。这个功能结合了音频处理、机器学习和在线服务等多个技术领域。下面将详细...
在Android中,我们可以使用MediaRecorder类来实现音频的录制。设置MediaRecorder时,需要指定音频源(如AudioSource.MIC),输出格式(如AudioFormat.ENCODING_PCM_16BIT),以及音频编码(这里是MP3,需要通过设置...
2. **媒体框架**:Android提供了Media Framework,它是一个强大的音频和视频处理库,用于播放、录制和操作多媒体文件。在音乐播放器中,主要用到的是MediaPlayer类,它可以加载本地和网络音乐资源,并实现播放、暂停...
6. **通知栏控制**:Android音乐播放器通常会在通知栏提供控制界面,让用户在任何界面下都能方便地进行播放、暂停、切换歌曲等操作。 7. **UI设计**:包括音乐列表、播放界面、控制面板等,需要考虑用户体验,实现...
在本资源"Android应用源码之高仿天天动听.zip"中,我们主要探讨的是一个针对安卓(Android)平台的应用程序源代码,该源码旨在模仿知名的音乐播放应用——天天动听。通过分析和学习这份源码,开发者可以深入了解...