通过AudioTrack播放正弦波纯音:

本文参考自: 
Android 播放指定频率正弦波声音—-sichard
Android左右声道的控制—-kqw攻城狮

生成纯音

所谓的纯音就是一个正弦波,生成的核心是靠Math.sin()方法产生的字节数组。

public static byte[] sin(byte[] wave, int waveLen, int length) {for (int i = 0; i < length; i++) {wave[i] = (byte) (HEIGHT * (1 - Math.sin(TWOPI * ((i % waveLen) * 1.00 / waveLen))));}return wave;}

创建播放线程

在将线程的构造方法中首先把AudioTrack初始化:

public PlayThread(int rate) {if (rate > 0) {Hz = rate;waveLen = RATE / Hz;length = waveLen * Hz;wave = new byte[RATE];mAudioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, RATE,AudioFormat.CHANNEL_CONFIGURATION_STEREO, // CHANNEL_CONFIGURATION_MONO,AudioFormat.ENCODING_PCM_8BIT, length, AudioTrack.MODE_STREAM);ISPLAYSOUND = true;wave = SinWave.sin(wave, waveLen, length);} else {return;}}

这里的ISPLAYSOUND是控制纯音持续播放的关键,否则后面也会讲到。

之后在线程开始后首先让AudioTrack进入播放的状态,再向AudioTrack写入播放数据:

@Overridepublic void run() {super.run();if (null != mAudioTrack)mAudioTrack.play();//一直播放while (ISPLAYSOUND) {mAudioTrack.write(wave, 0, length);}}

利用上面的ISPLAYSOUND的参数,将播放循环下去,想要停止播放就将ISPLAYSOUND设为false

END

写的比较简单,具体可以参考源码:
https://github.com/xiaoniu/PureTone

通过AudioTrack播放正弦波纯音相关推荐

  1. android AudioTrack 播放 正弦波 方波

    http://blog.csdn.net/songconglai/article/details/8161772

  2. Android编程中利用AudioTrack播放PCM数据在音频的最后出现重复回声现象的解决方案

    1 问题描述 今天在进行Android编程时遇到一个很奇怪的问题  重点说一下 这里我的测试机用的是"小米Note"  的确不怎么样 我在"华为P8"上面测试就 ...

  3. NDK学习笔记:JNI调用Java层方法创建Native的AudioTrack播放PCM(方法签名,CallXXXMethod)

    NDK学习笔记:JNI调用Java层方法创建Native的AudioTrack播放PCM 题目有点复杂,不过确实就是那么回事.这章想记录的内容比较多,先列出来: native static 与 nat ...

  4. 将 MP3 转成 PCM 并使用 AudioTrack 播放

    环境 Android Studio Bumblebee, Mac mini 2014 问题描述 需要实现功能为:将 MP3 转成 PCM 并通过 UDP 传出去. 任务可分解为: 将 MP3 转成 P ...

  5. android 循环播放mp3,android – 使用AudioTrack播放循环音频

    由于MediaPlayer的一些众所周知的缺陷,例如循环播放曲目之间出现的小差距,我有一个功能我想转换到使用Android的AudioTrack而不是MediaPlayer. 我被推荐使用AudioT ...

  6. Android使用AudioTrack播放WAV音频文件

    目录 1.wav文件格式 2.wav文件解析 3.wav文件播放 QA: 开始播放wav的时候使用了系统的播放器mediaplayer进行播放,但是无奈mediaplayer支持的实在不好. 好些年前 ...

  7. Android 音视频开发(一) -- 使用AudioRecord 录制PCM(录音);AudioTrack播放音频

    前言,音视频这块,确实比较难入门,本着学习的态度,我这边也跟着 Android 音视频开发入门指南 打怪升级,留下个脚印,大家共勉. 音视频 系列文章 Android 音视频开发(一) – 使用Aud ...

  8. Android AudioTrack播放PCM文件

    上篇文章写了使用AudioRecord采集音频,为了测试采集音频是否正确,可以通过AudioTrack播放音频试下. AudioTrack只能播放PCM格式的文件.PCM全称是Pulse Code M ...

  9. 音视频开发系列(28)AudioTrack播放PCM音频

    目录 AudioTrack和MediaPlayer AudioTrack的API介绍(构造.操作.状态机) 具体实现(Static和Stream两种模式) 遇到的问题 收获 一.MediaPlayer ...

最新文章

  1. java简单的面试题目_简单的面试题目,大跌眼镜的结果
  2. fiddler设置中文版本_教你下载iOS老版本应用
  3. Android中异步任务AsyncTask的使用
  4. 阿里云护航罗振宇2018“时间的朋友”跨年演讲,与千万观众一起跨年 1
  5. Asp.Net Core简单整理
  6. ibm笔记本电脑电池_笔记本电脑是一直插着电源好,还是拔了电源好?
  7. MySQL删除命令_DELETE
  8. uclient uc oracle,UClient下载
  9. iOS 强制屏幕旋转
  10. uniapp地图计算两点角度,旋转图标(轨迹回放)
  11. 校园 计算机网络设置路由器,Drcom校园网连接路由器怎么设置
  12. 【二〇二一·立春】读书笔记
  13. mysql导入(ibd文件)
  14. 模块手机Project Ara的MDK(Module Developers Kit)模块开发套件
  15. 1789. 牛为什么过马路 II
  16. 如何通过视频推广让你的App一夜爆红
  17. linux pcm和alsa 区别,linux alsa pcm(此pcm非硬件pcm接口)
  18. 树莓派 pico 移植 FreeRTOS
  19. Android_Studio
  20. 数据库——多表查询和子查询

热门文章

  1. [原创]对冒险岛Online配置信息研究的总结
  2. 软件行业里常说的“架构”
  3. 中南大学计算机系高建良,汤哲 - 中南大学 - 计算机学院
  4. 调用移动端相机以及相册功能
  5. 黑马旅游网-旅游线路详情信息功能(九)
  6. Unity 游戏实例开发集合 之 打砖块 休闲小游戏快速实现
  7. 在ubuntu上安装opera浏览器
  8. mc服务器配置文件编辑器,[服主必备软件]Notepad++ MC插件配置文件编辑器 教你如何编辑插件配置文件...
  9. HTTP请求报文(请求行、请求头、请求体),响应报文
  10. 知犀思维导图_知犀导图本地保存邀请码6个[未使用]需者自取.