android可以设定audiotrack的flag吗

 我来答
小七看着你哭乃
2017-04-11 · 超过50用户采纳过TA的回答
知道答主
回答量:69
采纳率:0%
帮助的人:21.4万
展开全部
你打印下Min_size看下是多少?  这是我以前写的能用。  packagegame.net.Speech;  importjava.io.IOException;  importjava.io.InputStream;  importjava.net.Socket;  importandroid.media.AudioFormat;  importandroid.media.AudioManager;  importandroid.media.AudioTrack;  importandroid.util.Log;  publicclassAudioTypePlayextendsThreadimplementsIPlay{  @Override  publicvoidplay(){  //TODOAuto-generatedmethodstub  this.start();  }  @Override  publicvoidend(){  //TODOAuto-generatedmethodstub  m_keep_running=false;  try{  Thread.sleep(200);  }catch(Exceptione){  }  }  privateInputStreammis;  protectedAudioTrackm_out_trk;  protectedintm_out_buf_size;  protectedbyte[]m_out_bytes;  publicbooleanm_keep_running=true;  /**  *初始化设备信息  *@throwsIOException  */  publicAudioTypePlay(InputStreamis)throwsIOException{  m_keep_running=true;  m_out_buf_size=AudioTrack.getMinBufferSize(8000,  AudioFormat.CHANNEL_CONFIGURATION_MONO,  AudioFormat.ENCODING_PCM_16BIT);  m_out_trk=newAudioTrack(AudioManager.STREAM_MUSIC,8000,  AudioFormat.CHANNEL_CONFIGURATION_MONO,  AudioFormat.ENCODING_PCM_16BIT,  m_out_buf_size,  AudioTrack.MODE_STREAM);  m_out_bytes=newbyte[m_out_buf_size*3];  //newThread(R1).start();  mis=is;  }  publicvoidrun(){  m_out_trk.play();  while(m_keep_running){  try{  m_out_buf_size=mis.read(m_out_bytes);  Log.d("播放声音",String.valueOf(m_out_buf_size));  m_out_trk.write(m_out_bytes.clone(),0,m_out_buf_size);  }catch(Exceptione){  e.printStackTrace();  }  }  m_out_trk.stop();  m_out_trk.release();  m_out_trk=null;  if(endEvent!=null)  {  endEvent.EndEvent();  }  }  privateOnSpeechEndEventendEvent;  @Override  publicvoidsetEndEvent(OnSpeechEndEventevent){  //TODOAuto-generatedmethodstub  endEvent=event;  }  }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式