- 浏览: 626889 次
文章分类
最新评论
-
q781253433:
qin ~.求demo看看~
Android之Widget -
zhongyuanceshi:
博主,没看到你的例子的Demo,共享下
Android之Widget
录音,并且把录影文件放在了外存储设备sdcard中:
package com.quidng.practice;
import java.io.File;
import java.io.IOException;
import android.app.Activity;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.Button;
public class RecordSound extends Activity implements OnClickListener{
private Button btnRecord,btnStop;
private MediaRecorder recorder;
private File soundFile;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.record_sound);
btnRecord = (Button) findViewById(R.id.record_sound_record);
btnRecord.setOnClickListener(this);
btnStop = (Button) findViewById(R.id.record_sound_stop);
btnStop.setOnClickListener(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
if(soundFile != null && soundFile.exists() && recorder != null){
recorder.stop(); //**停止录音**
recorder.release(); //**释放资源**
recorder = null;
}
}
@Override
public void onClick(View v) {
if(v.getId() == R.id.record_sound_record){
try {
//直接存储到了sdcard中
soundFile = new File(Environment.getExternalStorageDirectory().getCanonicalFile() + "/sound1.amr");
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC); //录制的声音的来源
// recorder.setVideoSource(video_source); //录制视频
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); //录制的声音的输出格式(必须在设置声音的编码格式之前设置)
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); //设置声音的编码格式
recorder.setOutputFile(soundFile.getAbsolutePath()); //设置声音的保存位置
recorder.prepare(); //**准备录音**
recorder.start(); //**开始录音**
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}else if(v.getId() == R.id.record_sound_stop){
if(soundFile != null && soundFile.exists()){
recorder.stop(); //**停止录音**
recorder.release(); //**释放资源**
recorder = null;
}
}
}
}
播放音乐:
package com.quding.widget.musicplayer;
import java.io.IOException;
import android.app.Service;
import android.content.Intent;
import android.content.res.AssetFileDescriptor;
import android.content.res.AssetManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.IBinder;
import android.util.Log;
public class MusicPlayerService extends Service{
private MediaPlayer player;
private AssetFileDescriptor asserAssetFileDescriptor;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
AssetManager assetManager = this.getAssets(); //获得一个assert资源管理器的实例
try {
asserAssetFileDescriptor = assetManager.openFd("run_with_myself.mp3"); //获取一个raw资源
} catch (IOException e) {
e.printStackTrace();
}
player = new MediaPlayer(); //播放assert中的文件
// player = MediaPlayer.create(getApplicationContext(), R.raw.run_with_myself); //这个是播放raw中的音频文加
// player = new MediaPlayer(); //播放sdcard中的文件
// try {
// player.setDataSource("/sdcard/sound1.arm"); //指明路径
// player.prepare(); //装载音频文件
// } catch (Exception e) {
// e.printStackTrace();
// }
Log.i("tag", "service已经存在");
}
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
if(intent != null){
Log.i("tag", intent.getData().toString());
int operator = Integer.parseInt(intent.getData().toString()); //operate带着具体的操作信息
switch (operator) {
case 1 : //打开
playMusic();
break;
case 2 : //暂停
pauseMusic();
break;
case 3 : //停止
stopMusic();
break;
}
}
}
private void playMusic() {
if(player != null && !player.isPlaying()){
try {
//设置资源
player.setDataSource(asserAssetFileDescriptor.getFileDescriptor(),
asserAssetFileDescriptor.getStartOffset(),
asserAssetFileDescriptor.getLength());
player.prepare(); //加载资源
player.start();
Log.i("tag", "播放音乐");
} catch (Exception e) {
e.printStackTrace();
}
}
}
private void pauseMusic(){
if(player != null && player.isPlaying()){
player.pause();
Log.i("tag", "暂停");
}
}
private void stopMusic(){
player.stop();
Log.i("tag", "停止");
try {
player.reset(); //使mediaPlayer会回到初始化之前的地方,需要重新加载文加,
player.setDataSource(asserAssetFileDescriptor.getFileDescriptor(),
asserAssetFileDescriptor.getStartOffset(),
asserAssetFileDescriptor.getLength());
player.prepare(); //加载资源
Log.i("tag", "重新加载文件");
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
发表评论
-
Android之Fastboot、Recovery基础知识
2013-12-19 22:13 1081参考文章: http://blog.csdn.net/y9 ... -
Eclipse设置主题
2013-10-26 22:32 699下载自己喜欢的主题: http://eclipsec ... -
gitignore文件的配置
2013-09-24 15:29 1730gitignore文件在Android ... -
Eclipse安装Git插件
2013-09-24 14:20 808http://jiangli.easymorse.com/?p ... -
Eclipse像Xcode一样自动有提示
2013-09-05 17:04 12221. 打开Eclipse,然后打开“Preferences ... -
点九PNG技术
2013-04-16 13:26 888参考文章: http://blog.csdn.net/g ... -
Android ASE 脚本环境
2013-04-10 12:32 1187原文: http://blog.sina.com.cn/ ... -
android 按两次返回键退出
2012-12-25 20:01 1325package com.anjoyo.test; ... -
android混淆代码总结
2012-12-19 18:02 1523反编译工具下载地址:http://ishare.iask.si ... -
System.out.printf输出格式
2012-12-13 22:01 2529// 定义一些变量,用来格式化输出。 double ... -
Regex正则表达式的使用
2012-12-09 20:20 1833正则表达式是用来描述某些字符串规则的工具,可以用此规则来做 ... -
IOS&Android开发 使用特殊字体,使用自定义字体
2012-11-24 00:16 1571IOS开发: 原文链接:http://tieba.baidu ... -
AspectJ的安装和Eclipse的AJDT插件的配置
2012-11-19 15:21 4964安装AspectJ是为了正常使用软件MonkeyTalk 1 ... -
Mac配置android开发环境
2012-11-13 16:18 48一.Eclipse的下载 到网站:http ... -
RelativeLayout相关属性
2012-11-13 14:49 962android:layout_centerInP ... -
Android资源文件
2012-11-04 15:22 995res [res中共有10种文 ... -
activity的启动方式(launch mode)
2012-11-04 15:14 868其他很详细的参考:http://blog.csdn.net/b ... -
android分享功能的实现(分享到微博空间等)
2012-11-03 22:15 2212//Intent intent = new Inten ... -
Android开发环境配置
2012-11-03 20:04 8841、JDK安装: http://jing ... -
android intent和intent action大全
2012-09-13 20:25 1059android 中intent是经常要用到的。不管是页面 ...
相关推荐
在WPF用户界面中,我们可以添加按钮控件来触发录音和播放操作,并通过绑定事件处理程序来实现交互。例如,为录音按钮添加一个点击事件,启动录音功能;为播放按钮添加点击事件,播放指定的音频文件。 4. **分析...
6. **结束操作**:当需要停止录音和播放时,调用相应的Stop方法,并确保释放所有资源。 在具体实现过程中,你可能会遇到一些挑战,比如性能优化、内存管理以及音频数据的正确处理。例如,对于较大的音频文件,可能...
这个`Android音频操作:录音和播放`的示例项目旨在教你如何使用`MediaPlayer`和`MediaRecorder`这两个核心工具类来实现音频的录制与回放。接下来,我们将深入探讨这两个类以及它们在实际应用中的使用方法。 首先,`...
Android 开发录音和播放音频是Android开发中的一个重要环节,涉及到音频处理、权限管理和文件操作等多个方面。以下是详解Android开发录音和播放音频的步骤: 步骤一:配置权限 在 Android 中,需要在 ...
在VC++环境中,开发音频处理应用,如录音和播放功能,是常见的需求。这个压缩包提供的资源主要涉及了声卡数据的抓取、录音以及播放的相关技术。下面将详细讲解这些知识点。 首先,声卡抓取(Sound Card Capturing)...
首先,项目的标题"录音与播放源代码,实现音频文件的播放"表明,其主要目标是提供一套能够处理音频文件播放的代码。在计算机科学中,音频播放通常涉及解码音频文件格式(如.wav),并将解码后的数据发送到声卡进行...
在QT中处理音频功能,我们可以利用QtMultimedia模块,该模块提供了丰富的音频和视频功能,包括录音和播放。 1. **QT多媒体模块介绍** QtMultimedia模块是Qt库的一部分,它为处理音频和视频提供了API。这个模块允许...
1. **音频播放**:确保音频文件在各种播放器和设备上都能正常播放,没有无声、失真或中断的情况。 2. **格式兼容**:检查不同操作系统、设备及应用对`.wav`格式的支持程度。 3. **编码解码**:测试编码和解码过程...
本文将详细讲解如何实现Android中的录音和播放网络音频文件,以及涉及的相关技术。 首先,我们来看录音部分。在Android中,我们可以使用`MediaRecorder`类来实现录音功能。`MediaRecorder`提供了录音、视频录制等...
6. **线程同步**:录音和播放可能会涉及到多线程操作,因此需要正确处理线程同步,例如使用事件对象或互斥量来协调读写操作。 7. **错误处理**:在开发过程中,需要对可能出现的错误进行捕获和处理,如设备打开失败...
在Windows操作系统中,使用C语言调用音频输入和输出设备进行录音和播放是常见的音频处理任务。本篇将深入探讨如何利用Windows API(应用程序接口)中的Waveform Audio(简称Wave或WAV)库来实现这一功能。 首先,...
在Android平台上,录音和音频播放是移动应用开发中常见的功能,尤其在音乐、教育和通讯类应用中不可或缺。本文将详细解析如何实现Android录音及音频播放,并重点介绍使用彩虹进度条来实时显示播放进度。 首先,我们...
WAV(Waveform Audio Format)是由微软和IBM共同开发的一种无损音频文件格式,它保存原始音频数据,没有经过任何压缩,因此提供了极高的音质。这种格式的文件通常较大,但能确保音频的质量不受损失,是制作和编辑...
7、音频文件信息写入功能,您可将设定标题、艺术者、专集、作曲家、年代等信息并将以上信息写入到您录音后保存的音频文件内。 8、热键功能,您可使用热键F5(录音)、F6(播放)、F7(暂停/继续)、F8(停止)来...
本篇将重点介绍如何使用WAV文件对象进行录音和播放操作,以及与之相关的API函数。 WAV是一种常见的无损音频格式,全称为Waveform Audio File Format,它存储的是原始的PCM(脉冲编码调制)音频数据。在Windows编程...
- **读取音频文件**:LabVIEW可以从WAV或其他格式的音频文件中读取数据,准备进行播放。 - **配置音频输出**:设置好播放设备(默认为声卡),并设定相应的播放参数。 - **数字信号到模拟信号转换**:使用D/A转换...
在实际使用中,用户可能需要了解一些基本的音频文件格式知识,例如不同格式的特点:MP3以其高效的压缩比和良好的音质被广泛使用,适合存储和分享;WAV是无损音频格式,保留原始音频的所有细节,但文件较大;AAC则在...
在音频处理中,"Media"通常指代音频文件、视频文件等多媒体内容。在这个上下文中,它可能包含了用于录音、播放和显示音频图的示例代码、配置文件或者库文件。 总之,这是一个集成了录音、播放和可视化功能的软件...
然而,有时候由于各种原因,如存储卡故障、文件传输错误或软件问题,可能会导致m4a音频文件损坏,无法正常播放。本文将深入探讨m4a音频文件损坏的原因及如何进行修复,以确保我们能够恢复那些宝贵的录音。 首先,...
对这个文件进行阅读和学习,可以帮助你更深入地理解如何在Android中实现类似微信的录音和播放功能。 总结一下,实现“android 模仿微信按住录音语音播放”主要涉及以下几个步骤和技术: 1. 使用`MediaRecorder`...