MODE_STATIC模式AudioTrack的使用方法
来源:互联网 发布:网络监控用光纤方案图 编辑:程序博客网 时间:2024/05/03 04:39
使用MODE_STATIC模式的AudioTrack时,遇到了播放不正常的问题。
使用比较短的文件,发现开始几次,声音都没出来,到最后一次,感觉是把前面几次积累的声音一次播放出来了。
后来查了下资料,发现使用MODE_STATIC模式的AudioTrack的方法不对。
正确使用的方法如下:
... if (NULL == mAudioOut) { ... mAudioOut = new AudioTrack(AudioSystem::TTS, VP_WAVEFILE_SAMPLERATE, AudioSystem::PCM_16_BIT, AudioSystem::CHANNEL_OUT_MONO, minFrameCount > 4096 ? minFrameCount : 4096, 0, 0, 0, 0); if (NULL == mAudioOut) { return false; }mAudioOut->write(m_bWaveBuf, dataSize);mAudioOut->start(); } if (mAudioOut->stopped()) {mAudioOut->reload(); mAudioOut->start(); }else if (!mAudioOut->stopped()){mAudioOut->stop();mAudioOut->reload();mAudioOut->start();}........
参考了以下链接:
http://stackoverflow.com/questions/6049221/androids-audiotrack-mode-static-issues
其中的示例代码也展示一下:
public void play(){
switch (super.getPlayState()) { case AudioTrack.PLAYSTATE_PAUSED: super.stop(); super.reloadStaticData(); super.play(); break; case AudioTrack.PLAYSTATE_PLAYING: super.stop(); super.reloadStaticData(); super.play(); break; case AudioTrack.PLAYSTATE_STOPPED: super.reloadStaticData(); super.play(); break; }
}
- MODE_STATIC模式AudioTrack的使用方法
- AudioTrack::setMarkerPosition函数的使用方法
- AudioTrack的session参数
- AudioTrack
- AudioTrack
- 工厂模式的使用方法
- 对于AudioTrack的认识(1)
- AudioTrack播放音频的流程
- audioTrack调用的简单流程图
- MediaStream,AudioTrack,VideoTrack的关系
- AudioRecord和AudioTrack类的使用
- Android 的AudioTrack.write 暗藏机关
- 使用AudioTrack最简单的例子
- AudioRecord和AudioTrack类的使用
- AudioRecord和AudioTrack类的使用
- AudioRecord和AudioTrack类的使用
- MediaPlayer中创建AudioTrack的过程
- AudioRecord和AudioTrack类的使用
- ios编程总结
- 解决dedecms中图片字段报错的问题
- 表级碎片整理shrink/move
- JS的事件监听机制
- 驱动无法编译出SYS文件
- MODE_STATIC模式AudioTrack的使用方法
- C++程序设计实验报告(8-3)
- 卸载相应的共享内存区域
- java注解研究实例
- 页面跳转
- 每天一道编程题(十)---------java竞赛称砝码问题
- Release Directory Modules
- HDUOJ 1198 Farm Irrigation(并查集)
- 第8周任务2