由于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播放循环音频相关推荐

  1. html flash音乐播放器代码,网页上播放mp3或flash等播放器代码

    复制代码代码如下: style="cursor:hand"> style="cursor:hand"> 附一: 控制播放器控件 media play ...

  2. android 读取手机mp3,Android四大组件之ContentResolver读取手机音乐文件

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 //就像查询数据库 Cursor cursor = query(RI uri,String[]projection,String selection ,S ...

  3. python单曲循环播放MP3

    python单曲循环播放mp3 本文使用pygame播放MP3 1.安装pygame包 安装方式请查看https://blog.csdn.net/python_go/article/details/1 ...

  4. AudioTrack播放流程

    AudioTrack介绍 音频播放声音分为MediaPlayer和AudioTrack两种方案的.MediaPlayer可以播放多种格式的声音文件,例如MP3,WAV,OGG,AAC,MIDI等.然而 ...

  5. AudioTrack播放PCM音频

    一.前言 说到在 Android 平台上播放音频,我们最先想到的是 MediaPlayer.系统 API 对其做了比较全面的封装,开发者用少量的代码就能实现播放功能.MediaPlayer 可以播放多 ...

  6. 使用go语言GUI库实现对mp3文件的播放1(简单的播放mp3文件)

    使用go语言GUI库实现对mp3文件的播放1(简单的播放mp3文件) 使用beep播放mp3文件(10num) 使用go语言GUI库fyne实现音乐播放器 要是想使用go语言实现播放mp3需要借助be ...

  7. 安卓实现音乐播放器(暂停,播放)

    |--效果图 |--依赖3个对象 MediaPlayer:实现音乐播放,暂停,缓冲.     SeekBar:滑动的进度条. java.util.Timer:定时器,时时更新进度条. |--main. ...

  8. android audiotrack mp3,播放mp3数据压缩由JLayer和Audiotrack latin mp3在android

    我跟着这个example转换来自AudioRecord原始音频数据为MP3,并且它成功发生,如果我将这个数据存储在一个文件的MP3文件和播放与音乐播放器,然后它是可以听到的.播放mp3数据压缩由JLa ...

  9. 音乐应用开发Android应用开发--MP3音乐播放器界面设计(2)

    在写这篇文章之前,xxx已写过了几篇关于改音乐应用开发主题的文章,想要了解的朋友可以去翻一下之前的文章 Android应用开发--MP3音乐播放器界面计划(2) 2013年5月25日 简.美音乐播放器 ...

最新文章

  1. R函数之:apply(), lapply(), sapply(), tapply()
  2. linux定时执行python脚本_linux定时执行python脚本的方法以及失败不执行的处理方法...
  3. 如何统计博客园的个人博客访问量
  4. Hadoop集群三种作业调度算法介绍
  5. 【简洁代码】1028 List Sorting (25 分)_26行代码AC
  6. win7旗舰版+caffe+vs2013+matlab2014b(无GPU版)
  7. 从未在一起更让人遗憾_科比生涯4大遗憾,只有1个MVP,错过保罗,跟腱撕裂再无传奇...
  8. oracle的事物起始于,oracle 学习笔记(十) 事务控制语句
  9. LINUX中文件的移动,Linux中文件移动文件的操作命令为 ()
  10. 9套Android实战经典项目
  11. 被众多车企“抛弃”、增长放缓,Mobileye值不值500亿美元?
  12. Matlab:实现菲涅尔圆孔衍射仿真
  13. 如何进行大文件传输?
  14. 以Apollo为例学习/分析自动驾驶运动规划算法
  15. 计算机硬盘发展现状,固态硬盘的发展现状
  16. 类动态规划求解较小规模的最大团问题(Python实现)
  17. 解决Ubuntu系统上网速度慢的问题
  18. SCRIPT1004: 缺少 ‘;‘IE8浏览器报错
  19. 斐讯n1刷鸿蒙系统,【总结】在N1上面成功刷入armbian并启动的步骤
  20. matlab 切比雪夫距离,matlab中用pdist函数计算切比雪夫chebychev距离的计算顺序

热门文章

  1. MAC抓包工具Charles
  2. 电商大数据建设 行业分化加剧
  3. MatLab中rand randi randn 三个函数的解析
  4. fine-grained和coarse-grained理解
  5. 树莓派 pi zero 上网记
  6. 实名登记下的NFC手机读取二代证方法
  7. CG-34 浊度传感器 简单说明
  8. C语言程序——求学生总成绩和平均成绩
  9. 为什么100M的带宽测试网速还不到10M/s?
  10. MySQL的视图的相关介绍