通过AudioTrack播放正弦波纯音
通过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播放正弦波纯音相关推荐
- android AudioTrack 播放 正弦波 方波
http://blog.csdn.net/songconglai/article/details/8161772
- Android编程中利用AudioTrack播放PCM数据在音频的最后出现重复回声现象的解决方案
1 问题描述 今天在进行Android编程时遇到一个很奇怪的问题 重点说一下 这里我的测试机用的是"小米Note" 的确不怎么样 我在"华为P8"上面测试就 ...
- NDK学习笔记:JNI调用Java层方法创建Native的AudioTrack播放PCM(方法签名,CallXXXMethod)
NDK学习笔记:JNI调用Java层方法创建Native的AudioTrack播放PCM 题目有点复杂,不过确实就是那么回事.这章想记录的内容比较多,先列出来: native static 与 nat ...
- 将 MP3 转成 PCM 并使用 AudioTrack 播放
环境 Android Studio Bumblebee, Mac mini 2014 问题描述 需要实现功能为:将 MP3 转成 PCM 并通过 UDP 传出去. 任务可分解为: 将 MP3 转成 P ...
- android 循环播放mp3,android – 使用AudioTrack播放循环音频
由于MediaPlayer的一些众所周知的缺陷,例如循环播放曲目之间出现的小差距,我有一个功能我想转换到使用Android的AudioTrack而不是MediaPlayer. 我被推荐使用AudioT ...
- Android使用AudioTrack播放WAV音频文件
目录 1.wav文件格式 2.wav文件解析 3.wav文件播放 QA: 开始播放wav的时候使用了系统的播放器mediaplayer进行播放,但是无奈mediaplayer支持的实在不好. 好些年前 ...
- Android 音视频开发(一) -- 使用AudioRecord 录制PCM(录音);AudioTrack播放音频
前言,音视频这块,确实比较难入门,本着学习的态度,我这边也跟着 Android 音视频开发入门指南 打怪升级,留下个脚印,大家共勉. 音视频 系列文章 Android 音视频开发(一) – 使用Aud ...
- Android AudioTrack播放PCM文件
上篇文章写了使用AudioRecord采集音频,为了测试采集音频是否正确,可以通过AudioTrack播放音频试下. AudioTrack只能播放PCM格式的文件.PCM全称是Pulse Code M ...
- 音视频开发系列(28)AudioTrack播放PCM音频
目录 AudioTrack和MediaPlayer AudioTrack的API介绍(构造.操作.状态机) 具体实现(Static和Stream两种模式) 遇到的问题 收获 一.MediaPlayer ...
最新文章
- java简单的面试题目_简单的面试题目,大跌眼镜的结果
- fiddler设置中文版本_教你下载iOS老版本应用
- Android中异步任务AsyncTask的使用
- 阿里云护航罗振宇2018“时间的朋友”跨年演讲,与千万观众一起跨年 1
- Asp.Net Core简单整理
- ibm笔记本电脑电池_笔记本电脑是一直插着电源好,还是拔了电源好?
- MySQL删除命令_DELETE
- uclient uc oracle,UClient下载
- iOS 强制屏幕旋转
- uniapp地图计算两点角度,旋转图标(轨迹回放)
- 校园 计算机网络设置路由器,Drcom校园网连接路由器怎么设置
- 【二〇二一·立春】读书笔记
- mysql导入(ibd文件)
- 模块手机Project Ara的MDK(Module Developers Kit)模块开发套件
- 1789. 牛为什么过马路 II
- 如何通过视频推广让你的App一夜爆红
- linux pcm和alsa 区别,linux alsa pcm(此pcm非硬件pcm接口)
- 树莓派 pico 移植 FreeRTOS
- Android_Studio
- 数据库——多表查询和子查询
热门文章
- [原创]对冒险岛Online配置信息研究的总结
- 软件行业里常说的“架构”
- 中南大学计算机系高建良,汤哲 - 中南大学 - 计算机学院
- 调用移动端相机以及相册功能
- 黑马旅游网-旅游线路详情信息功能(九)
- Unity 游戏实例开发集合 之 打砖块 休闲小游戏快速实现
- 在ubuntu上安装opera浏览器
- mc服务器配置文件编辑器,[服主必备软件]Notepad++ MC插件配置文件编辑器 教你如何编辑插件配置文件...
- HTTP请求报文(请求行、请求头、请求体),响应报文
- 知犀思维导图_知犀导图本地保存邀请码6个[未使用]需者自取.