android 循环播放mp3,android – 使用AudioTrack播放循环音频
由于MediaPlayer的一些众所周知的缺陷,例如循环播放曲目之间出现的小差距,我有一个功能我想转换到使用Android的AudioTrack而不是MediaPlayer。
我被推荐使用AudioTrack,但没有发现很多使用示例。我在AudioTrack上找到了一个关于SO的问题,并使用了一些代码来组合起来:
public class TestActivity extends Activity implements Runnable {
Button playButton;
byte[] byteData = null;
int bufSize;
AudioTrack myAT = null;
Thread playThread = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
playButton = (Button) findViewById(R.id.testButton);
InputStream inputStream = getResources().openRawResource(R.raw.whitenoise_wav);
try {
byteData = new byte[ inputStream.available()];
} catch (IOException e) {
e.printStackTrace();
}
try {
inputStream.read(byteData);
inputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
initialize();
playButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
playThread.start();
}
});
}
void initialize() {
bufSize = android.media.AudioTrack.getMinBufferSize(44100,
AudioFormat.CHANNEL_CONFIGURATION_STEREO,
AudioFormat.ENCODING_PCM_16BIT);
myAT = new AudioTrack(AudioManager.STREAM_MUSIC,
44100, AudioFormat.CHANNEL_CONFIGURATION_STEREO,
AudioFormat.ENCODING_PCM_16BIT, bufSize,
AudioTrack.MODE_STREAM);
myAT.setVolume(.2f);
playThread = new Thread(this);
}
public void run() {
if (myAT != null) {
myAT.play();
myAT.setLoopPoints(0, byteData.length, 6);
myAT.write(byteData, 0, byteData.length);
}
}
}
所以这似乎播放整个音轨(〜1:00分钟),然后停止。现在这里的最终目标是两个有两个独立的音轨同时播放和循环播放。我目前在/ res / raw /目录中有音轨,但如果这样更好,我可以将它们移动到一个简单的资产文件夹。我目前实现的AudioTrack是否正确?如果是这样,我该如何让它循环?
总结:如何使用AudioTrack播放循环播放音频?
欢迎有其他方式获得循环音频的建议,如第三方库。
android 循环播放mp3,android – 使用AudioTrack播放循环音频相关推荐
- html flash音乐播放器代码,网页上播放mp3或flash等播放器代码
复制代码代码如下: style="cursor:hand"> style="cursor:hand"> 附一: 控制播放器控件 media play ...
- android 读取手机mp3,Android四大组件之ContentResolver读取手机音乐文件
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 //就像查询数据库 Cursor cursor = query(RI uri,String[]projection,String selection ,S ...
- python单曲循环播放MP3
python单曲循环播放mp3 本文使用pygame播放MP3 1.安装pygame包 安装方式请查看https://blog.csdn.net/python_go/article/details/1 ...
- AudioTrack播放流程
AudioTrack介绍 音频播放声音分为MediaPlayer和AudioTrack两种方案的.MediaPlayer可以播放多种格式的声音文件,例如MP3,WAV,OGG,AAC,MIDI等.然而 ...
- AudioTrack播放PCM音频
一.前言 说到在 Android 平台上播放音频,我们最先想到的是 MediaPlayer.系统 API 对其做了比较全面的封装,开发者用少量的代码就能实现播放功能.MediaPlayer 可以播放多 ...
- 使用go语言GUI库实现对mp3文件的播放1(简单的播放mp3文件)
使用go语言GUI库实现对mp3文件的播放1(简单的播放mp3文件) 使用beep播放mp3文件(10num) 使用go语言GUI库fyne实现音乐播放器 要是想使用go语言实现播放mp3需要借助be ...
- 安卓实现音乐播放器(暂停,播放)
|--效果图 |--依赖3个对象 MediaPlayer:实现音乐播放,暂停,缓冲. SeekBar:滑动的进度条. java.util.Timer:定时器,时时更新进度条. |--main. ...
- android audiotrack mp3,播放mp3数据压缩由JLayer和Audiotrack latin mp3在android
我跟着这个example转换来自AudioRecord原始音频数据为MP3,并且它成功发生,如果我将这个数据存储在一个文件的MP3文件和播放与音乐播放器,然后它是可以听到的.播放mp3数据压缩由JLa ...
- 音乐应用开发Android应用开发--MP3音乐播放器界面设计(2)
在写这篇文章之前,xxx已写过了几篇关于改音乐应用开发主题的文章,想要了解的朋友可以去翻一下之前的文章 Android应用开发--MP3音乐播放器界面计划(2) 2013年5月25日 简.美音乐播放器 ...
最新文章
- R函数之:apply(), lapply(), sapply(), tapply()
- linux定时执行python脚本_linux定时执行python脚本的方法以及失败不执行的处理方法...
- 如何统计博客园的个人博客访问量
- Hadoop集群三种作业调度算法介绍
- 【简洁代码】1028 List Sorting (25 分)_26行代码AC
- win7旗舰版+caffe+vs2013+matlab2014b(无GPU版)
- 从未在一起更让人遗憾_科比生涯4大遗憾,只有1个MVP,错过保罗,跟腱撕裂再无传奇...
- oracle的事物起始于,oracle 学习笔记(十) 事务控制语句
- LINUX中文件的移动,Linux中文件移动文件的操作命令为 ()
- 9套Android实战经典项目
- 被众多车企“抛弃”、增长放缓,Mobileye值不值500亿美元?
- Matlab:实现菲涅尔圆孔衍射仿真
- 如何进行大文件传输?
- 以Apollo为例学习/分析自动驾驶运动规划算法
- 计算机硬盘发展现状,固态硬盘的发展现状
- 类动态规划求解较小规模的最大团问题(Python实现)
- 解决Ubuntu系统上网速度慢的问题
- SCRIPT1004: 缺少 ‘;‘IE8浏览器报错
- 斐讯n1刷鸿蒙系统,【总结】在N1上面成功刷入armbian并启动的步骤
- matlab 切比雪夫距离,matlab中用pdist函数计算切比雪夫chebychev距离的计算顺序