解决方案 »
- SAX解析,对一个tag为啥执行三次 character()方法?
- 关于apk在桌面显示的问题,请帮帮忙
- android如何连接Oracle数据库,求源代码
- 如何确定driver 的某个C文件最终编译到哪个文件了?
- 关于Timepicker的时间划分
- 调用getListView().getSelectedId()以后如何清空??
- 循环显示的问题,求指点。(急用)
- 关于fragment操作报错Activity has been destroyed的问题?
- 安卓开发不能读取数据库的疑问
- ECLIPSE 编制的APP有时候启动不成功,有时候启动又能成功.
- 4.x如何向系统短信写入短信
- android网络图片适配不同分辨率屏幕
还有,录制时的recBufSize(你贴的代码里的变量)
是由AudioRecord生成的吧(参考书代码) int frequency=11025;
int channelConfig=AudioFormat.CHANNEL_CONFIGURATION_MONO;//貌似被弃用,值是2
int audioFormat=AudioFormat.ENCODING_PCM_16BIT;
//三个参数为:frequency频率、channelConfig音频编码、audioFormat声道编码
int bufferSize=AudioRecord.getMinBufferSize(frequency, channelConfig, audioFormat);
还有,录制时的recBufSize(你贴的代码里的变量)
是由AudioRecord生成的吧(参考书代码) int frequency=11025;
int channelConfig=AudioFormat.CHANNEL_CONFIGURATION_MONO;//貌似被弃用,值是2
int audioFormat=AudioFormat.ENCODING_PCM_16BIT;
//三个参数为:frequency频率、channelConfig音频编码、audioFormat声道编码
int bufferSize=AudioRecord.getMinBufferSize(frequency, channelConfig, audioFormat);
是的。我定义的recBufSize是这样的:private int recBufSize = AudioRecord.getMinBufferSize(fre,channelConfiguration,audioEncoding);public void Play() throws Exception
{
boolean isPlaying = true;
//String dir = Environment.getExternalStorageDirectory().getAbsolutePath()+"/xz.pcm";
int mAudioMinBufSize = AudioTrack.getMinBufferSize(8000,AudioFormat.CHANNEL_CONFIGURATION_STEREO, AudioFormat.ENCODING_PCM_16BIT);
int bufferSize = AudioTrack.getMinBufferSize(fre, channelConfiguration, audioEncoding);
short[] buffer = new short[bufferSize];
try
{
File dir = new File (Environment.getExternalStorageDirectory().getAbsolutePath()+"/xz.pcm");
InputStream is = new FileInputStream(dir);
DataInputStream dis = new DataInputStream(new BufferedInputStream(is));
AudioTrack track = new AudioTrack(AudioManager.STREAM_MUSIC,fre,channelConfiguration,audioEncoding,mAudioMinBufSize,AudioTrack.MODE_STREAM);
track.setStereoVolume(1.0f, 1.0f);
track.play();
while(isPlaying && dis.available()>0)
{
int i = 0;
while(dis.available()>0 && i<buffer.length)
{
buffer[i] = dis.readShort();
i++;
}
//播放声音关键
track.write(buffer, 0, buffer.length);
}
track.stop();
track.release();
dis.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}这是我的播放代码,请看看有什么问题吗?
http://download.csdn.net/detail/inquisitive_plus/8402049