- 浏览: 995302 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (367)
- JavaScript (23)
- Java (60)
- Python (41)
- 其他 (36)
- SQL (4)
- 开发工具 (26)
- Linux (15)
- AJAX (6)
- Cache (3)
- 正则 (4)
- 架构 (9)
- 手机 (3)
- MySQL (4)
- Android (115)
- vps (1)
- 网站 (4)
- scale (3)
- 搜索引擎 (3)
- iPhone (2)
- hessian (1)
- hessdroid (1)
- 411 (1)
- jstat (1)
- gc (1)
- gallery (1)
- 惯性 (1)
- eclipse (1)
- mac wget error (1)
- miui file explorer 无用 解决办法 (1)
- vim (1)
最新评论
-
qingyezhangluo:
哎。楼主您既然是分享代码的为什么要加密的呢?而且问你密码还不回 ...
android应用换皮肤(转) -
MagicError:
kavoe 写道下载文件有密码。。。。
http抓包工具 -
knightdf:
我先试下再来
JAVA的RAS加密例子 -
kavoe:
下载文件有密码。。。。
http抓包工具 -
changanfounder:
hmc1985 写道setCallbackDuringFlin ...
android gallery滑动惯性问题
可以以左声道或者右声道来播放 音频文件 :
import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.media.MediaPlayer; import android.media.AudioManager; import android.media.AudioTrack; import android.media.AudioFormat; public class LRChannel extends Activity { private Button lButton; private Button rButton; private TextView myTextView; private MediaPlayer mMediaPlayer01 = null; private AudioTrack aAudioTrack01 = null; private String strFilePath = "/sdcard/test.mp3"; private float midVol = 0; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); lButton = (Button) findViewById(R.id.ButtonL); rButton = (Button) findViewById(R.id.ButtonR); myTextView = (TextView) findViewById(R.id.myTextView); // left button response lButton.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View arg0) { // if ( checkSDCard() ) // { // playVideo(strFilePath); playSound(strFilePath, 0); // } } }); // right button response rButton.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View arg0) { playSound(strFilePath, 1); } }); } private void playVideo(String strPath) { mMediaPlayer01 = new MediaPlayer(); mMediaPlayer01.setAudioStreamType(AudioManager.STREAM_MUSIC); try { mMediaPlayer01.setDataSource(strPath); } catch (Exception e) { // TODO Auto-generated catch block myTextView.setText("setDataSource Exceeption:" + e.toString()); e.printStackTrace(); } try { mMediaPlayer01.prepare(); } catch (Exception e) { // TODO Auto-generated catch block myTextView.setText("prepare Exceeption:"+e.toString()); e.printStackTrace(); } mMediaPlayer01.start(); myTextView.setText("Playing"); mMediaPlayer01.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { public void onCompletion(MediaPlayer arg0) { // TODO Auto-generated method stub myTextView.setText("Playing stop!"); } }); } // iChannel = 0 means left channel test, iChannel = 1 means right channel test. private void playSound(String strPath, int iChannel) { // If now is playing... if ( aAudioTrack01 != null ) { aAudioTrack01.release(); aAudioTrack01 = null; } // Get the AudioTrack minimum buffer size int iMinBufSize = AudioTrack.getMinBufferSize(44100, AudioFormat.CHANNEL_CONFIGURATION_STEREO, AudioFormat.ENCODING_PCM_16BIT); if ( iMinBufSize == AudioTrack.ERROR_BAD_VALUE || iMinBufSize == AudioTrack.ERROR ) { return; } // Constructor a AudioTrack object try { aAudioTrack01 = new AudioTrack(AudioManager.STREAM_MUSIC, 44100, AudioFormat.CHANNEL_CONFIGURATION_STEREO, AudioFormat.ENCODING_PCM_16BIT, iMinBufSize, AudioTrack.MODE_STREAM); } catch (IllegalArgumentException iae) { myTextView.setText("new AudioTrack Exceeption:" + iae.toString()); iae.printStackTrace(); } // Write data to buffer byte data[] = new byte[iMinBufSize]; aAudioTrack01.write(data, 0, data.length); aAudioTrack01.write(data, 0, data.length); float lValue = 0; float rValue = 0; if ( iChannel == 0 ) { lValue = 1.0f; rValue = 0.0f; } else if ( iChannel == 1 ) { lValue = 0.0f; rValue = 1.0f; } aAudioTrack01.play(); if ( aAudioTrack01.setStereoVolume(lValue, rValue) == AudioTrack.SUCCESS ) { myTextView.setText("setStereoVolume successfully!"); } aAudioTrack01.stop(); if ( aAudioTrack01.setStereoVolume(midVol, midVol) == AudioTrack.SUCCESS ) { myTextView.setText("Restore setStereoVolume successfully!"); } aAudioTrack01.release(); aAudioTrack01 = null; } private boolean checkSDCard() { if ( android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED) ) { return true; } else { return false; } } @Override protected void onDestroy() { super.onDestroy(); // TODO Auto-generated method stub if ( aAudioTrack01 != null ) { aAudioTrack01.setStereoVolume(midVol, midVol); aAudioTrack01.release(); aAudioTrack01 = null; } } }
在播放音频方面,AudioTrack可以设置的效果更多,如果你用MediaPlayer,在设置播放效果时不如AudioTrack!
评论
4 楼
hzhbking
2012-05-09
不会用
3 楼
sasuke38
2011-11-30
请问怎么暂停,暂停后又怎么继续播放
2 楼
jiang4920
2011-10-25
请问在哪儿里开始播放的?
1 楼
marine8888
2011-08-15
hi,在playSound(musicPath,channel)中没有处理musicPath,playSound(...)的时候有声音吗?
发表评论
-
android屏幕适配
2012-11-16 17:24 2138屏幕适配一直是一个让人头疼的问题,论坛上讨论这个问题的最后也 ... -
禁止Eclipse中xml文件Run as的XSL Transformation生成out.xml以方便Android应用开发
2012-08-26 21:38 2583可以在Eclipse里面配置,菜单Windows->P ... -
android 自带的主题 theme 的使用
2012-08-25 23:21 2329在android的sdk 安装目录data\r ... -
android 如何判断程序是否在前台运行
2012-04-06 00:04 3061private boolean isTopActiv ... -
用代码如何检测一个android程序是否在运行
2012-04-05 23:07 3699<uses-permission android:na ... -
Android-TextView多行本文滚动轻松实现
2012-03-04 19:37 1273TextView tvAndroid123 = (T ... -
让背景模糊的效果
2012-03-04 16:22 2578设置透明度(这是窗体本身的透明度,非背景) Wi ... -
Android 使用shape
2012-03-04 16:14 1008刚刚翻论坛的时候看到的,总觉得以后会用的上这些零零碎碎 ... -
关于android中使用很多大图片的一些做法
2012-02-29 00:11 1409最近在xoom上开发应用,碰到ui设计都是使用图片,而 ... -
屏幕尺寸和像素密度的资源限定符
2012-02-23 15:31 1570屏幕尺寸和像素密度的资源限定符 以下是可以用来为 ... -
android开发之gallery 实现滚动一张且短距离滑动实现滚动
2011-12-19 18:50 1880首先gallery的特点就不用多说了吧,惯性滚动、半屏翻页,但 ... -
下拉刷新
2011-10-14 15:09 1117要实现这种效果 可以参见这里https://git ... -
android应用换皮肤(转)
2011-10-12 14:36 3140看到好多人在问题与解答里面都问怎么换肤,搜了一下论坛里面好像没 ... -
Android签名到底都有哪些作用?
2011-10-09 17:59 2258所有的Android应用程序都要求开发人员用一个证书进 ... -
Android 动态切换全屏和非全屏模式
2011-10-08 15:15 3425直接贴出代码: Java代码 ... -
Android开发——利用Cursor+CursorAdapter实现界面实时更新(转)
2011-09-20 15:47 3035好久没有更新博客了 ... -
Nginx使用反向代理时 Hessian 的 411 错误解决方案【转】
2011-09-15 13:48 2324问题描述: 用 Hessian 实现 web se ... -
理解 Android 本地数据存储 AP(转)
2011-05-18 14:25 1866样例应用程序 为了突出 Android 应用程序开发的本 ... -
Android 本地数据存储 API(二)(转)
2011-05-18 14:23 1942使用 SQLite 数据库 Android 通过 S ... -
Android 本地数据存储 API(三)(转)
2011-05-18 14:22 2522为私有数据使用设备的内部存储器 有了数据存储 API ...
相关推荐
android使用AudioTrack低延迟播放音频文件.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
通过AudioTrack实现播放PCM文件,设置采样率,将文件读取到byte字节中
播放扩展名为rm格式的文件,不使用android 内置的Audio和video来播放PCM音频数据,通过通过解码得到PCM数据源,使用AudioTrack类实现音频文件的播放,本源码就是演示了如何使用AudioTrack来播放PCM音频数据,...
可以多个音频顺序播放,可以重复播放音频 博文地址:http://blog.csdn.net/w1027296673/article/details/50441709
本Demo使用MediaCodec解码AAC音频数据,解码之后直接使用AudioTrack播放PCM音频数据
audiotrack 播放音频
读入文件,pcm dat等格式,转换为数组由Androidtrack播放
Android 使用 AudioRecord 和 AudioTrack 完成音频PCM数据的采集和播放,并读写音频wav文件。 封装好的Java代码,可同时录制PCM和WAV文件。自己定义存储位置。 Android提供了AudioRecord和MediaRecord。MediaRecord...
一个使用audiotrack播放PCM音频数据的DEMO,上传的代码工程中有个音频数据文件夹,包含了用于测试的PCM数据文件,详情请看readme.txt;另外代码附详细说明,走过路过的都不要错过了,喜欢就顶下吧
RT,一个使用audiotrack播放PCM音频数据的DEMO,上传的代码工程中有个音频数据文件夹,包含了用于测试的PCM数据文件,详情请看readme.txt;另外代码附详细说明,走过路过的都不要错过了,喜欢就顶下吧
实现用audiotrack播放pcm音频流
Android实现使用AudioTrack实现正弦波音频播放,不固定频率可任意切换频率。20Hz~2KHz之间进行无缝切换。
这份代码是打开PCM裸流文件并截取一段数据然后播放的,可以轻松的经过加一条线程的方式改成网络传输的形式。
本文主要介绍Android上可以进行音频(PCM)播放的两个组件–AudioTrack/OpenSL ES的简单使用方法。 对一个音频文件(如MP3文件),如何使用FFmpeg进行解码获取到PCM,之前的文章已经有相应的说明: ...
一个简单的音频录制和播放示例代码,使用两个线程,一个使用AudioRecord录制音频,一个使用AudioTrack处理音频播放,只有简单的功能
用AudioRecord获取音频源数据流存储后,再用AudioTrack读取存储文件,播放录音。能够录音后,即时播放。
主要为大家详细介绍了Android音频系统AudioTrack的使用方法,如何使用AudioTrack进行音频播放,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
AudioTrack播放原始音频PCM
AudioTrack播放pcm文件,波形显示, 用于测试的demo, 比较简单。
PCMAudioPlayerDemothis project Using AudioTrack play PCM audio files##chinese这里要感谢...##说明该demo实现将多个pcm的音频文件合并到一个流中(合并主要用的是SequenceInputStream),通过用AudioTrack进行播放。