- 浏览: 115011 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (135)
- java (135)
- [转]c# 画圆角矩形 (1)
- 设计模式生活实例 (1)
- .nET2.0小技巧 (1)
- 从另一个角度看敏捷实践(一)--IPM:承诺的仪式 (1)
- javascript字符串转json对象 (1)
- 使用BeanUtils时,Date类型值为空的解决方法 (1)
- Lenovo V460+Ubuntu 11.10 无线网问题 (1)
- Lucene 索引和搜索过程核心类详解 (1)
- Android短信编解码方式 (1)
- 股神巴菲特十大致富秘籍 (1)
- Map遍历的三种方法 (1)
- Android中用Toast.cancel()方法优化toast内容的显示 (1)
- ViewFlipper “Receiver not registered” Error (1)
- javax.xml.transform.TransformerFactoryConfigurationError (1)
- JNI调用的注意事项 (1)
- JUnit单元测试感悟 (1)
- 用C#写定时关机的程序 (1)
- ASP.NET开发工具Web Matrix介绍 (1)
- MapXtreme2004代码 MapControl控件中显示地图文件 (1)
- 《使用 Microsoft .NET 的企业解决方案模式》读书笔记3 (1)
- 微创短信开发平台 (1)
- 谈谈Q+平台的技术实现 (1)
- 手机防盗软件实现(源码) (1)
- 虚析构函数(总结 帖子) (1)
- c语言中去除const修饰 (1)
- ORA-01012: not logged on 解决办法 (1)
- paypal提现如何省钱 (1)
- 数独suduku (1)
- MyISAM InnoDB 区别 (1)
- 随 笔 (1)
- Android上的log,日志相关 (1)
- 百度质量部实习居然通过了~ (1)
最新评论
-
野狐禅:
ext.get('imagebrowse') is null
ExtJs上传图片预览功能 -
zhuyl_wind:
不切实际,呵呵
[]5年内买车买房-理财篇 -
in南京:
关键你那两千块钱就够交一个多月的房租!换个城市你那六百也远远不 ...
[]5年内买车买房-理财篇 -
javac_xinyun:
呵呵,看完了,确实不错,貌似第一年的房租每月算进去 ,人际关系 ...
[]5年内买车买房-理财篇 -
dishikun:
貌似很不错,就是没把房租算进去!
[]5年内买车买房-理财篇
2011.08.12(3)——— android audiotrack 播放音频
参考:
http://blog.sina.com.cn/s/blog_74b752870100qxrv.html
http://crazier9527.iteye.com/blog/467061
http://www.cnblogs.com/mcodec/articles/1933741.html
播放mp3的总是噪音,不知道原因,后来播放wav的倒是可以,
wav是没有压缩的pcm
参考:
http://blog.sina.com.cn/s/blog_74b752870100qxrv.html
http://crazier9527.iteye.com/blog/467061
http://www.cnblogs.com/mcodec/articles/1933741.html
播放mp3的总是噪音,不知道原因,后来播放wav的倒是可以,
wav是没有压缩的pcm
package com.lp;import java.io.ioexception;import java.io.inputstream;import android.app.activity;import android.content.context;import android.media.audioformat;import android.media.audiomanager;import android.media.audiotrack;import android.media.audiotrack.onplaybackpositionupdatelistener;import android.os.bundle;import android.view.view;import android.view.view.onclicklistener;import android.widget.button;public class mainactivity extends activity { private button play; private button stop; private audiotrack at; private audiomanager am; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); am = (audiomanager)getsystemservice(context.audio_service); play = (button)findviewbyid(r.id.main_play); stop = (button)findviewbyid(r.id.main_stop); play.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { if(am.isspeakerphoneon()){ am.setspeakerphoneon(false); } setvolumecontrolstream(audiomanager.stream_voice_call); am.setmode(audiomanager.mode_in_call); system.out.println(am.getstreammaxvolume(audiomanager.stream_voice_call)); system.out.println("&&&&&&&&&&&&&"); system.out.println(am.getstreamvolume(audiomanager.stream_voice_call)); int buffersizeinbytes = audiotrack.getminbuffersize(44100, audioformat.channel_out_mono, audioformat.encoding_pcm_16bit); if(at==null){ at = new audiotrack(audiomanager.stream_voice_call, 44100, audioformat.channel_out_mono, audioformat.encoding_pcm_16bit, buffersizeinbytes, audiotrack.mode_stream); system.out.println("22222"); new audiotrackthread().start(); }else{ if(at.getplaystate()==audiotrack.playstate_playing){ system.out.println("111111111"); }else{ system.out.println("33333"); at = new audiotrack(audiomanager.stream_voice_call, 44100, audioformat.channel_out_mono, audioformat.encoding_pcm_16bit, buffersizeinbytes, audiotrack.mode_stream); new audiotrackthread().start(); } } } }); stop.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { at.stop(); at.release(); am.setmode(audiomanager.mode_normal); } }); } class audiotrackthread extends thread{ @override public void run() { byte[] out_bytes = new byte[44100]; inputstream is = getresources().openrawresource(r.raw.start); int length ; at.play(); try { while((length = is.read(out_bytes))!=-1){ system.out.println(length); at.write(out_bytes, 0, length); } } catch (ioexception e) { e.printstacktrace(); } if(at.getplaystate()==audiotrack.playstate_playing){ at.stop(); at.release(); am.setmode(audiomanager.mode_normal); } } } }
发表评论
-
百度质量部实习居然通过了~
2012-02-08 12:23 957[size=small;]? ? ?本来打算在软工所苦 ... -
Android上的log,日志相关
2012-02-07 14:18 1487摘自:http://blog.csdn.net/met ... -
随 笔
2012-02-04 13:39 567金风玉露一相逢,便胜却人间无数。英文版: chemis ... -
MyISAM InnoDB 区别
2012-02-02 16:59 700<h1 id="artibody ... -
数独suduku
2012-01-31 14:38 883sudu sudu sudu sudu sudu su ... -
paypal提现如何省钱
2011-12-28 16:58 1178据PayPal中文注册得知,如今很多收样品费的外贸商户 ... -
ORA-01012: not logged on 解决办法
2011-12-28 13:08 3425<span style="font-f ... -
c语言中去除const修饰
2011-12-21 10:54 1380[size=16px;]<span style= ... -
虚析构函数(总结 帖子)
2011-12-21 09:54 672<span style="" ... -
手机防盗软件实现(源码)
2011-12-20 12:54 915<a href="http://blo ... -
谈谈Q+平台的技术实现
2011-12-20 09:49 934这篇文章是我个人 ... -
微创短信开发平台
2011-12-19 11:39 735在网上闲逛,发现了一个站点,微创短信开发平台(http ... -
《使用 Microsoft .NET 的企业解决方案模式》读书笔记3
2011-12-19 10:24 717第3章 Web表示模式 没有一个设计策略能够适合所有情 ... -
MapXtreme2004代码 MapControl控件中显示地图文件
2011-12-15 14:29 857::<?xml:namespace prefix ... -
ASP.NET开发工具Web Matrix介绍
2011-12-15 13:39 935<p class="MsoPlain ... -
用C#写定时关机的程序
2011-12-15 11:14 671</span></font>& ... -
JUnit单元测试感悟
2011-12-14 11:29 832<p class="MsoNorma ... -
JNI调用的注意事项
2011-12-14 09:34 717JNI的简单教程网上很多,看看就能够明白,照着操作也基 ... -
javax.xml.transform.TransformerFactoryConfigurationError
2011-12-13 13:34 812<span style="" ... -
ViewFlipper “Receiver not registered” Error
2011-12-12 10:59 1094偶尔出现这个错误: <span> < ...
相关推荐
android基于AudioTrack播放PCM音频文件的源码实例,播放扩展名为rm格式的文件,不使用android 内置的Audio和video来播放PCM音频数据,通过通过解码得到PCM数据源,使用AudioTrack类实现音频文件的播放,本源码就是...
android使用AudioTrack低延迟播放音频文件.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
本Demo使用MediaCodec解码AAC音频数据,解码之后直接使用AudioTrack播放PCM音频数据
RT,一个使用audiotrack播放PCM音频数据的DEMO,上传的代码工程中有个音频数据文件夹,包含了用于测试的PCM数据文件,详情请看readme.txt;另外代码附详细说明,走过路过的都不要错过了,喜欢就顶下吧
实现用audiotrack播放pcm音频流
可以多个音频顺序播放,可以重复播放音频 博文地址:http://blog.csdn.net/w1027296673/article/details/50441709
Android实现使用AudioTrack实现正弦波音频播放,不固定频率可任意切换频率。20Hz~2KHz之间进行无缝切换。
目录一、动态路由的初始化1、获取路由策略2、向AudioPolicyManager注册路由策略二、动态路由的路由流程,以AudioTrack创建为例创建AudioTrack的路由选择如何定制音频路由1、policy路由配置2、修改AudioControl的...
读取wav文件,用static模式播放.注意需要添加权限,<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
Android 使用 AudioRecord 和 AudioTrack 完成音频PCM数据的采集和播放,并读写音频wav文件。 封装好的Java代码,可同时录制PCM和WAV文件。自己定义存储位置。 Android提供了AudioRecord和MediaRecord。MediaRecord...
audiotrack 播放音频
读入文件,pcm dat等格式,转换为数组由Androidtrack播放
主要为大家详细介绍了Android音频系统AudioTrack的使用方法,如何使用AudioTrack进行音频播放,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文主要介绍Android上可以进行音频(PCM)播放的两个组件–AudioTrack/OpenSL ES的简单使用方法。 对一个音频文件(如MP3文件),如何使用FFmpeg进行解码获取到PCM,之前的文章已经有相应的说明: ...
一个使用audiotrack播放PCM音频数据的DEMO,上传的代码工程中有个音频数据文件夹,包含了用于测试的PCM数据文件,详情请看readme.txt;另外代码附详细说明,走过路过的都不要错过了,喜欢就顶下吧
android使用audioRecord和audioTrack实现语音录音播放与即时播放
android AudioRecord AudioTrack实现录音并播放 并支持参数选择(频率、编码格式、声道) 更多信息可参考http://blog.sina.com.cn/u/1788464665
Android AudioTrack 分析,从理论及代码角度分析 android audioTrack framework 层。
在Andriod中使用AudioRecord录音,使用AudioTrack播放录音的完整Demo。