int iMinBufSize = AudioTrack.getMinBufferSize(44000,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT);
aAudioTrack01 = new AudioTrack(AudioManager.STREAM_MUSIC, 44000,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT,
iMinBufSize,
AudioTrack.MODE_STREAM);
aAudioTrack01.play();
byte data[] = new byte[iMinBufSize];
然后通过文件读取context.openFileInput把mp3读到data中
aAudioTrack01.write(data, 0, data.length);出来的声音是噪音,话说是否audiotrack只能读取录制的音乐么或者有什么其他方法能够把声音通过单声道播放,或是需要通过驱动手动修改么
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT);
aAudioTrack01 = new AudioTrack(AudioManager.STREAM_MUSIC, 44000,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT,
iMinBufSize,
AudioTrack.MODE_STREAM);
aAudioTrack01.play();
byte data[] = new byte[iMinBufSize];
然后通过文件读取context.openFileInput把mp3读到data中
aAudioTrack01.write(data, 0, data.length);出来的声音是噪音,话说是否audiotrack只能读取录制的音乐么或者有什么其他方法能够把声音通过单声道播放,或是需要通过驱动手动修改么
解决方案 »
- android录像问题,听起简单,做起盲目。
- Android Camera 明细
- 我写的手势识别怎么只响应down,onshowpress,onLongpress啊?
- 在自己的程序中获取当前正在显示的Activity怎么做?我的是一个类。
- radiobutton超出本行后自动换行如何实现
- Android中显示网络上的图片
- 怎样把flash 插入到android里??
- 非Activity的类中,如何才能调用AlertDialog
- 找不到服务器数据,程序报错退出
- Android 7.0 弹出框安装/sdcard/目录下的APK,提示解析包错误
- sqlite遇到一个小小的问题
- 关于设置播放器大小问题
soundpool应该能控制声道
采样率要除2
同时采样率应该是从mp3中得到,不应该写死。
可参考mp3的数据格式中的帧头结构,得到采样率
http://blog.163.com/waft_xu/blog/static/438152942008139330707/
int iMinBufSize = AudioTrack.getMinBufferSize(44000/2,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT);
aAudioTrack01 = new AudioTrack(AudioManager.STREAM_MUSIC, 44000/2,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT,
iMinBufSize,
AudioTrack.MODE_STREAM);
采样率要除2
同时采样率应该是从mp3中得到,不应该写死。
可参考mp3的数据格式中的帧头结构,得到采样率
http://blog.163.com/waft_xu/blog/static/438152942008139330707/
int iMinBufSize = AudioTrack.getMinBufferSize(44000/2,
AudioFormat.CHANNEL_CONFIGURATION_STEREO,
AudioFormat.ENCODING_PCM_16BIT);
aAudioTrack01 = new AudioTrack(AudioManager.STREAM_MUSIC, 44000/2,
AudioFormat.CHANNEL_CONFIGURATION_STEREO,
AudioFormat.ENCODING_PCM_16BIT,
iMinBufSize,
AudioTrack.MODE_STREAM);