Android下最简单的AudioTrack播放PCM的例子
很简单的直接放出源码:
package com.sunmi.audiotrack;import android.media.AudioFormat;
import android.media.AudioManager;
import android.media.AudioTrack;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import android.util.Log;public class MainActivity extends AppCompatActivity {private static final int BUFFER_SIZE = 1024 * 2;private ReadThread mReadThread;private AudioTrack audioRtack;private FileInputStream dis;private byte[] mBuffer;private File recordingFile;private class ReadThread extends Thread {@Overridepublic void run() {super.run();audioRtack.play();try {int cnt = 0;while((cnt = dis.read(mBuffer)) > 0){audioRtack.write(mBuffer, 0, cnt);Log.e("AudioTrack","cnt = " + cnt);}} catch (RuntimeException | IOException e) {e.printStackTrace();}try {dis.close();} catch (IOException e) {e.printStackTrace();}}}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);recordingFile = new File("/data/xusong-shzj2.wav");try {dis = new FileInputStream(recordingFile);}catch (FileNotFoundException e){e.printStackTrace();onDestroy();}int streamType = AudioManager.STREAM_MUSIC;int simpleRate = 44100;int channelConfig = AudioFormat.CHANNEL_OUT_STEREO;int audioFormat = AudioFormat.ENCODING_PCM_16BIT;int mode = AudioTrack.MODE_STREAM;mBuffer = new byte[BUFFER_SIZE];int minBufferSize = AudioTrack.getMinBufferSize(simpleRate , channelConfig , audioFormat);audioRtack = new AudioTrack(streamType , simpleRate , channelConfig , audioFormat ,Math.max(minBufferSize , BUFFER_SIZE) , mode);mReadThread = new ReadThread();mReadThread.start();}
}
Android下最简单的AudioTrack播放PCM的例子相关推荐
- Android Studio实现简单的音乐播放(播放、暂停、停止、上一首、下一首)
Android Studio实现简单的音乐播放(播放.暂停.停止.上一首.下一首) 简要介绍 采用Service组件实现后台播放,BroadcastReceiver实现消息传递.BroadcastRe ...
- NDK学习笔记:JNI调用Java层方法创建Native的AudioTrack播放PCM(方法签名,CallXXXMethod)
NDK学习笔记:JNI调用Java层方法创建Native的AudioTrack播放PCM 题目有点复杂,不过确实就是那么回事.这章想记录的内容比较多,先列出来: native static 与 nat ...
- AudioTrack播放PCM音频
一.前言 说到在 Android 平台上播放音频,我们最先想到的是 MediaPlayer.系统 API 对其做了比较全面的封装,开发者用少量的代码就能实现播放功能.MediaPlayer 可以播放多 ...
- 一个基于Android开发的简单的音乐播放器
一个基于Android开发的简单的音乐播放器 记得当时老师让我们写因为播放器时,脑子一头雾水,网上杂七杂八的资料也很少有用,因此索性就自己写一篇,希望对有缘人有用. 因为有好多人问我要源码,所以附上g ...
- AudioTrack播放pcm格式音频
AudioTrack播放pcm格式音频 package com.zero.demo;import android.content.Context; import android.media.Audio ...
- Android AudioTrack播放PCM文件
上篇文章写了使用AudioRecord采集音频,为了测试采集音频是否正确,可以通过AudioTrack播放音频试下. AudioTrack只能播放PCM格式的文件.PCM全称是Pulse Code M ...
- Android编程中利用AudioTrack播放PCM数据在音频的最后出现重复回声现象的解决方案
1 问题描述 今天在进行Android编程时遇到一个很奇怪的问题 重点说一下 这里我的测试机用的是"小米Note" 的确不怎么样 我在"华为P8"上面测试就 ...
- 音视频开发系列(28)AudioTrack播放PCM音频
目录 AudioTrack和MediaPlayer AudioTrack的API介绍(构造.操作.状态机) 具体实现(Static和Stream两种模式) 遇到的问题 收获 一.MediaPlayer ...
- AudioTrack 播放PCM音频数据
AudioTrack 可以用来播放PCM数据,上一篇博客我讲了AudioRecord可以录制PCM数据 AudioTrack实例可以在两种模式下运行:静态或流式传输. 在Streaming模式下,应用 ...
- 使用AudioTrack播放pcm流式音频
一.什么是AudioTrack /*** The AudioTrack class manages and plays a single audio resource for Java applica ...
最新文章
- Stuts的Web.xml 详解
- Dubbo 一篇文章就够了:Dubbo遇到初恋
- C# Winform中DataGridView的DataGridViewCheckBoxColumn CheckBox选中判断
- JVM调优:常见垃圾回收器组合
- 如何实现标准TCODE的屏幕增强
- SOLID 设计原则 In C# 代码实现
- dedecms织梦上传图片302Error错误
- android studio自定义类,为AndroidStudio设置自定义类注释
- 工具的使用——windows操作系统的使用(二)
- numpy.random 模块中文文档学习笔记
- 模拟 Vue 手写一个 MVVM
- 如何将数据渲染到页面上?
- Oracle merge into 使用记录
- can not find Artifact XXX 的原因
- VMWare Fusion虚拟机安装与配置教程
- 网页背景颜色怎么设置css,css怎么设置网页背景颜色
- Apache ab测试解析
- 深度学习入门,Keras Conv2D类参数详解
- 浏览器主页被篡改怎么办,主页被篡改恢复方法
- 应用宝认领应用签名_腾讯开放平台第三方应用签名参数sig的说明
热门文章
- error: not found: value sc
- pthread_mutex_init 互斥锁pthread_mutex_t的使用(转)
- 一步一步学习hadoop(九)
- addEventListener监听
- 什么是.NET应用程序域
- mySQL中replace的用法
- 0538-实战将lnmp服务中的上传目录独立分离到nfs服务器
- Linux安装Nginx1.7.4、php5.5.15和配置
- [20160325]bbed是否有4G的限制.txt
- 用C#实现将html文件转换为chm文件